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

Laravel Blade模板读取数组title属性报ErrorException如何解决

问题原因
  • 报错信息明确指出你在数组类型的$post变量上使用了对象访问语法->,PHP不支持这种写法,因此触发报错。
  • 你可以先确认业务逻辑预期传入的是数组还是对象,再选择对应方案修改即可。
解决方案

方案1:直接适配数组类型(无需修改控制器代码)

把所有$post->xxx的写法替换为数组访问语法$post['xxx'],修改后的代码如下:

@if($loop->even)
  <div>{{ $key }}.{{ $post['title'] }}</div>
@else
  <div style="background-color: silver">{{ $key }}.{{ $post['title'] }}</div>
@endif

<div>
    <form action="{{ route('posts.destroy',['post' => $post['id']]) }}" method="POST" >
        @csrf
        @method('DELETE')
        
        <input type="submit" value="Delete !" >
    </form>
 </div>

方案2:修改控制器逻辑,传入对象类型(符合Laravel常规写法)

找到渲染该视图的控制器方法,检查你传递$post变量的代码:

  • 如果你是从Eloquent模型查询数据,不要调用toArray()方法把模型转成数组,直接把模型实例传递到视图即可
  • 如果你是用查询构造器查询数据,也不要调用toArray()做数组转换,默认返回的stdClass对象支持->语法访问属性
调试建议

你可以在视图最开头加一行{{ dd($post) }},打印查看$post的实际类型和结构,确认里面是否存在title、id字段,再做对应修改即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:06:01