laravel $user->save()
是如何工作的?
我对以下内容感兴趣。
1)我知道这个save()方法可能返回异常或false。我总是希望它返回异常,我从不希望它返回false。我该如何实现?
2)什么时候save()返回false?我认为它应该一直返回异常,如果它不起作用。
对于#1,您可以扩展Model并在false时抛出异常:
class BaseModel extends \Illuminate\Database\Eloquent\Model
{
public function save(array $options = [])
{
$saved = parent::save($options);
if ($saved === false) {
throw new \Exception("some text");
}
}
}
或者只检查错误:
$saved = $model->save();
if ($saved === false) {
throw new \Exception("some text");
}
对于#2,您可以在这里查看源代码:https://github.com/laravel/framework/blob/master/src/Illuminate/Database/Eloquent/Model.php#L641
并检查return false
的可能性。