防止在观察者Laravel中出错时创建记录

时间:2019-02-08 11:02:25

标签: php laravel

如果函数给我一个错误,我该如何阻止在模型上创建记录?

我有观察员:

public function created(Post $post)
{
    Auth::guest() ? $post->sendEmailNotification($post->guest_token) : '';
}

我需要:如果sendEmailNotification发生异常,则不创建记录。现在,如果出现异常,请发布任何创建内容。

1 个答案:

答案 0 :(得分:1)

您必须使用creating而不是created,在创建之前会触发creating,因此只需捕获异常并返回false即可:

public function creating(Post $post)
{
    try {
        if (Auth::guest()) {
            $post->sendEmailNotification($post->guest_token);
        }
    } catch (\Exception $e) {
        return false;
    }
}