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

Lyo*_*yon 27 php laravel laravel-4

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

$user = new User;
$user->fields = 'example';
$user->save(); // returns false
Run Code Online (Sandbox Code Playgroud)

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

dd(DB::getQueryLog());
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Eng*_* Cy 67

要在$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
    }
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 :)

  • 它应该是`(\ Exception $ e)`因为否则它会认为你正在寻找这个命名空间中的Exception类.(除非你写'使用Exeption`) (5认同)
  • 该代码将永远不会执行catch块中的内容,因为`save()`方法将返回false,因此不会触发异常。 (4认同)
  • 奇怪的答案和评论。如果没有捕获,Laravel 是否会吞下异常并返回 false? (3认同)