You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.4 Blade模板可变变量无法获取description属性求助

解决Laravel 5.4 Blade中可变变量访问模型description属性的问题

我来帮你搞定这个问题!其实核心是你用错了动态访问模型属性的语法,咱们直接上解决方案:

修改后的可运行Blade代码

@foreach($tableCols as $tableCol)
    <?php $name = $tableCol['name']; ?>
    <td>{{ $model->{$name} }}</td>
@endforeach

或者更简洁,不用单独赋值变量:

@foreach($tableCols as $tableCol)
    <td>{{ $model->{$tableCol['name']} }}</td>
@endforeach

为什么原来的写法会报错?

你之前用的$$name是PHP的可变变量语法,它的逻辑是:如果$name的值是'description',那$$name就等价于直接调用$description——但这个$description变量在你的模板上下文里根本没定义,自然会抛出「Undefined variable: description」的错误。

而Laravel模型的属性(比如$model->description)是通过模型的魔术方法__get()动态获取的,并不是普通的PHP变量。所以要动态访问模型属性,得用大括号包裹变量名的写法$model->{$name},这种写法会告诉PHP:你要访问的是$model对象中,名称等于$name变量值的那个属性,而不是去寻找一个叫$description的普通变量。

额外小提示

你原来模板里的{{ $name = $tableCol['name']}}会把赋值的结果(也就是属性名)直接输出到页面上,这应该不是你想要的,所以改成PHP标签赋值或者直接在属性访问里用$tableCol['name']更合理。

内容的提问来源于stack exchange,提问作者user908759

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 10:01:01