为什么laravel save()像这样工作(某些时候返回false)

问题描述 投票:2回答:1

laravel $user->save()是如何工作的?

我对以下内容感兴趣。

1)我知道这个save()方法可能返回异常或false。我总是希望它返回异常,我从不希望它返回false。我该如何实现?

2)什么时候save()返回false?我认为它应该一直返回异常,如果它不起作用。

php laravel
1个回答
2
投票

对于#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的可能性。

© www.soinside.com 2019 - 2024. All rights reserved.