Laravel Model->save() 返回 false 但没有错误

2022-08-30 12:39:53

通常,当我调用 时,它会在数据库中成功创建新记录。我正在尝试调试一种情况,当没有任何反应并返回 false 时。我如何知道发生了什么?Model->save()Model->save()

$user = new User;
$user->fields = 'example';
$user->save(); // returns false

运行此命令不会显示任何插入查询。

dd(DB::getQueryLog());

但是如果我,我正确地将所有字段正确保存在对象中。var_dump($user)

谢谢!


答案 1

若要在出错时获取插入查询,可以尝试捕获异常,如下所示:$user->save();

    try{
       $user = new User;
       $user->fields = 'example';
       $user->save(); // returns false
    }
    catch(\Exception $e){
       // do task when error
       echo $e->getMessage();   // insert query
    }

希望这有助于:)


答案 2

我知道它已经得到了答案,但是如果其他人需要不同的方法,我能够看到$model->save()错误,其中包含Laravel中被低估的组件:修补

php artisan tinker
$old = \App\Model\User::find(1);
$new = $old->replicate();
$new->save();

然后我能够看到错误:

Illuminate/Database/QueryException with message 'SQLSTATE[42S22]: 列未找到: 1054 'field list' 中的未知列 'relations' (SQL: insert into (...temp_users


推荐