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

Laravel博客模块插入数据报错:Attempt to read property "blog_category_id" on null

Laravel博客模块插入文章报错排查

我正在Laravel中开发博客模块,已创建分类表并成功插入数据,blog_categories表中存在数据,能在创建文章的表单中获取所有分类,但插入文章数据时出现错误Attempt to read property "blog_category_id" on null,以下是我的代码,请帮忙排查问题。

Model代码

class Blog extends Model
{
    use HasFactory;
    protected $guarded = [];

     public function category(){
        return $this->belongsTo(BlogCategory::class,'blog_category_id','id');
     }
}

Controller代码

public function storeBlog(Request $request){
    $request->validate([
        'blog_category_id' =>'required',
        'photo' => 'required|image|mimes:jpg,jpeg,png',
        'title'=>'required',
        'details'=>'required',
    ]);

    $ext = $request->file('photo')->extension();
            $final_name = time().'.'.$ext;
            $request->file('photo')->move(public_path('uploads/'),$final_name);
    $obj = new Blog();
    $obj->$request->blog_category_id;
    $obj->title =$request->title;
    $obj->details = $request->details;
    $obj->photo = $final_name;
    $obj->visibility = 0;
    $obj->created_by= null;
    
    $obj->save();
    dd($obj);
    return redirect()->back()->with('message','Blog Post created successfully');
}

表单代码

<h3>Select Post Category</h3>
<div class="mt-5">
    <div class="custom-select">
        <select name="blog_category_id" class="form-control">
            <option selected="">Select Post Category</option>
            @foreach($categories as $item)
            <option value="{{$item->id}}">{{$item->blog_category}}</option>
              @endforeach
        </select>
        <div class="custom-select-icon la la-caret-down"></div>
    </div>
</div>

问题排查与修复

报错的核心原因是Controller中的赋值语句语法错误:

$obj->$request->blog_category_id;

这行代码会被解析为尝试访问$obj的$request属性(该属性不存在,返回null),接着尝试读取null的blog_category_id属性,从而触发报错。

正确的赋值方式是将请求中的blog_category_id值赋给Blog模型的对应属性,修改为:

$obj->blog_category_id = $request->blog_category_id;

另外,表单中的默认选项可以调整得更严谨(虽不影响当前验证,但符合规范):

<option value="" selected>Select Post Category</option>

修改后重新测试,文章插入逻辑即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 03:16:23