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

Laravel 9 报错:Attempt to assign property 'category_id' on null 问题咨询

问题分析与修复方案

核心问题

当category_id数值大于等于100000时抛出「Attempt to assign property 'category_id' on null」错误,本质是查询数据库时未找到对应记录,返回了null,后续对null对象赋值属性导致报错。

原因排查

  1. 参数使用错误:控制器方法定义了路由参数$category_id,但实际查询时却用了$request->category_id。从视图代码看,form的action是把category_id放在路由路径中({{url('edit-attributes')}}/{{ $category_logs->category_id }}),并未通过请求参数传递该值,导致大ID场景下$request->category_id无有效值,TicketsLog::find()返回null。
  2. 额外验证点:确认数据库category_id字段类型,虽然684356未超出MySQL int类型最大值(2147483647),但如果字段设置了长度限制或其他约束,也可能导致查询失败。

修复代码

控制器代码修正

public function editAttributes(Request $request, $category_id){
    Session::put('page','tickets-log');
    // 改用路由参数$category_id查询,而非request参数
    $category_logs = TicketsLog::find($category_id);
    
    // 增加空判断,提前拦截不存在的记录
    if(!$category_logs){
        abort(404, '分类记录不存在');
    }

    // 仅更新需要修改的字段,无需重复赋值主键category_id
    $category_logs->category_name = $request->category_name;
    $category_logs->category_desc = $request->category_desc;
    $category_logs->category_not = $request->category_not ;
    $category_logs->category_not2 = $request->category_not2;
    $category_logs->category_not3 = $request->category_not3;
    $category_logs->category_not4 = $request->category_not4;
    
    $category_logs->save();
    return view('attributes.edit', compact('category_logs'));
}

视图代码优化(可选)

使用路由命名替代硬编码URL,更易维护:

<form enctype="multipart/form-data" action="{{ route('edit.attributes', $category_logs->category_id) }}" method="post">@csrf
    <div class="col-sm-6">
        <div class="card">
            <div class="card-body">
                <h5 class="card-title">Category :</h5>
                <input type="number" class="form-control" id="category_id" value="{{ $category_logs->category_id }}" readonly>
            </div>
        </div>
    </div>
</form>

需在routes/web.php中给路由命名:

Route::post('/edit-attributes/{category_id}', [YourController::class, 'editAttributes'])->name('edit.attributes');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:36:20