【问题标题】:Laravel Blade access object property using variableLaravel Blade 使用变量访问对象属性
【发布时间】:2015-10-16 15:23:40
【问题描述】:

在刀片模板中,y 控制器传递一个属性值很少的对象,如下所示

value_L1 = "Hello"
value_L2 = "Stack"
value_L3 = "OverFlow"

我想用for循环来显示这些值,但是循环中的语句返回null,我怎么能在blade中做这样的事情?

@for ($count = 1; $count < 3; $count++)
    {{ $object->{'value_L.$count'} }}
@endfor

我可以按以下方式访问这些属性

{{ $object->value_L1 }}
{{ $object->value_L2 }}

谢谢,

K

【问题讨论】:

  • 单引号会将字符串视为文字,这意味着您的$count 将被视为字符串$count 而不是变量$count。看看here
  • 另外他在L$count之间有一个点
  • 我看到这是使用变量$object-&gt;{'$var'} 访问属性,其中$var="value_L1" 有效。
  • $object-&gt;{'value_L'.$count} 不工作吗?

标签: php laravel blade laravel-5.1


【解决方案1】:

怎么样

@for ($count = 1; $count < 3; $count++)
    {{ object_get($object, "value_L{$count}" ) }}
@endfor

【讨论】:

  • 太棒了!你能把它标记为正确答案吗?
  • 是的,我会的,我正在测试他的编辑,当我尝试 @if (isset(object_get($object, "value_L{$count}" ))) 时,它会给出语法错误
  • 你有@endif吗?
  • 当我在 object_get 上搜索时,我没有看到关于 php.net 或 laravel 文档的信息。如果它试图访问的属性不可用,它是否返回 false 或 null?
  • 是的,我有@endif,事实上我有一个@else,后跟@endif
猜你喜欢
  • 2019-01-29
  • 2011-06-10
  • 2021-10-25
相关资源
最近更新 更多