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

Laravel获取JSON数据后无法在Datatable中渲染列表如何解决

问题原因

你在控制器中调用$data->json()得到的是关联数组类型的返回结果,Blade模板中使用对象语法$value->title访问数组属性会抛出类型错误。

解决方案

提供两种可直接落地的修改方式,二选一即可:

方案1:修改视图访问语法(改法最快)

直接把视图中对象属性的调用方式改为数组调用:

{{ $value['title'] }}

修改后的完整视图代码:

<table id="table_id" class="display">
  <thead>
      <tr>
          <th>Column 1</th>
          <th>Column 2</th>
      </tr>
  </thead>
  <tbody>
      @foreach ($data as $key => $value)
      <tr>
          <td>
          {{ $value['title'] }}
         </td>
          <td>{{ $value['body'] }}</td>
      </tr>
      @endforeach
  </tbody>
</table>

方案2:控制器返回对象格式(适配原视图写法)

如果习惯用对象语法访问属性,修改控制器的json解析逻辑,关闭关联数组转换:

public function index()
{
    $data = Http::get('https://jsonplaceholder.typicode.com/posts');
    // json方法第二个参数传false,返回stdClass对象数组
    return view('frontend.default.index', ['data'=> $data->json(false)]);
}

修改后原视图的{{$value->title}}可以正常生效。

报错参考截图

报错截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 22:00:03