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

时间:2015-04-20 23:06:02

标签: php laravel laravel-4

通常当我调用Model->save()时,它会成功地在数据库中创建新记录。我没有尝试调试情况,Model->save()返回false。我怎样才能知道发生了什么?

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

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

dd(DB::getQueryLog());

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

谢谢!

3 个答案:

答案 0 :(得分:61)

要在$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
    }

希望这会有所帮助:)

答案 1 :(得分:0)

我知道它已经得到了回答,但如果其他人需要不同的方法,我能够看到 $model->save() 错误与 Laravel 的未被重视的组件:tinker

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

然后我就能看到错误:

<块引用>

Illuminate/Database/QueryException 与消息“SQLSTATE[42S22]: 未找到列:“字段列表”中的 1054 列“关系”未知 (SQL:插入到 temp_users (...

答案 2 :(得分:-5)

如果你只是想逃避而不知道发生了什么,你可以试试这个,

 $user = new User;
    $user->fields = 'example';
    if($user->save()){
        return true;
    }
    else{
        // returns false
        //do something
    }