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

Laravel报错:Trying to access array offset on value of type bool 求助

问题分析与解决

错误原因

  1. 变量名冲突:控制器方法参数$request和查询结果变量$request重名,易引发逻辑混乱。
  2. 查询结果处理不当:DriverRequest::find($request)找不到对应记录时会返回false(布尔值),视图中用@foreach遍历布尔值,直接触发Trying to access array offset on value of type bool错误。
  3. 视图逻辑错误:你要展示的是单个请求详情,find方法返回的是单个模型对象(或false),并非数组/集合,根本不需要用@foreach循环。

修正方案

1. 修正控制器代码

public function show($id)
{
    // 用findOrFail,找不到记录直接返回404,避免将布尔值传入视图
    $request = DriverRequest::findOrFail($id);
    return view('driverDashboard.showRequestDetails', ['request' => $request]);
}
  • 将方法参数改为$id,避免与查询结果变量重名;
  • 用findOrFail替代find,确保无匹配记录时直接抛出404,杜绝布尔值流入视图。

2. 修正视图代码

单个记录直接访问属性即可,移除多余的循环:

<div class="body txt-c d-flex p-20 mt-20 mb-20 block-mobile">
  <div>
    {{ $request->name }}
  </div>
  <div>
    {{ $request->budget }}
  </div>
  <div>
    {{ $request->status }}
  </div>
</div>
  • 若你的DriverRequest返回的是数组而非模型对象,可改成{{ $request['name'] }},Laravel模型默认用对象属性访问方式;
  • 移除代码中多余的</td>标签(无对应<td>标签无需闭合)。

额外提示

  • 开发时可用dd($request)打印变量,确认其类型与结构,快速排查问题;
  • 尽量给变量起有意义的名字,比如将$request改为$driverRequest,提升代码可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:05:12