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

Laravel执行db:seed时UserSeeder报Call to a member function employees() on bool错误

错误原因

你调用DB::table('users')->insert()方法的返回值是布尔类型(插入成功返回true,失败返回false),并不是User模型的实例,所以你用布尔值调用employees()关联方法自然会抛出该错误。

修复方案

直接改用User模型的create()方法创建用户,该方法会返回新创建的用户模型实例,即可正常调用关联方法:

class UserSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $user = User::create([
            'name' => 'john',
            'lastname' => 'davis',
            'email' => 'admin@gmail.com',
            'phone' => '12345678',
            'role'=>'admin',
            'password' => Hash::make('12345454'),
            'password_status'=>1
        ]);
        $user->employees()->create(['image'=>'image.jpg','address'=>'address']);
    }
}

注意事项

  • 请确认Employees模型的$fillable属性中已添加image和address字段,否则会触发Laravel批量赋值保护错误。
  • 如果你确实需要使用DB门面操作,可以先用insertGetId获取插入用户的ID,再查询得到模型实例后调用关联:
// 插入用户并获取主键ID
$userId = DB::table('users')->insertGetId([
    'name' => 'john',
    'lastname' => 'davis',
    'email' => 'admin@gmail.com',
    'phone' => '12345678',
    'role'=>'admin',
    'password' => Hash::make('12345454'),
    'password_status'=>1
]);
// 查询得到用户模型实例
$user = User::findOrFail($userId);
// 调用关联创建员工记录
$user->employees()->create(['image'=>'image.jpg','address'=>'address']);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:15:04