【问题标题】:PHP5 Laravel - Replace all object attributes that are equal to a valuePHP5 Laravel - 替换所有等于值的对象属性
【发布时间】:2015-09-21 07:30:45
【问题描述】:

我正在使用 Laravel 5 框架构建一个网站,但遇到了一些麻烦。

我使用 Eloquent 模型从数据库中提取了一组对象,并将其传递给视图。

数组的格式是这样的:

array[object1{prop1:xxxx, prop2: xxxx}, object2{prop1:xxxx,prop2:xxxx}...]

问题是某些属性值为false,所以当我使用{{ object1->propriety }} 打印时,它不会打印任何内容。

我想替换数组中所有对象中的所有错误属性,而不总是放置语句if (!obj1->prop) do something,因为对象很多。

谢谢。

【问题讨论】:

标签: php arrays laravel eloquent


【解决方案1】:

您可以在视图中使用三元运算符:

{{ $object->boolean_attribute ? 'true' : 'false' }}

【讨论】:

  • 谢谢,这是一种在打印前替换值的快速方法,但我需要一步替换所有错误的属性(例如循环)
  • 为什么要替换检索后的值?为什么不存储为布尔值以外的值,或者输出修改后的值?
  • 确实是这样,但是DB中的值是“通用的”,它不仅仅用于在页面上打印一些东西,所以不能直接在桌子上更改。
  • 好吧,这就是为什么在可能的情况下替换模型上的所有值是一种不好的做法。除了视图输出之外,它会使模型在所有其他用例中无效。只在视图中使用三元运算符有什么问题?
  • 也许它会更快,代码行更少。但是现在我正在使用三元运算符。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-27
  • 1970-01-01
  • 2021-11-26
  • 2020-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多