如果$ model-> save()失败,请继续执行代码

时间:2015-02-15 09:16:11

标签: php laravel exception-handling namespaces laravel-5

即使$ model-> save()失败,如何确保PHP代码继续运行?

我在url列上有一个唯一索引,所以我的代码有时会故意失败,但我想确保代码不会因为这个而停止。

$url = new \App\Url;
$url->url = 'http://www.example.com';
$url->save();

我试过尝试像这样抓住:

$url = new \App\Url;
$url->url = 'http://www.example.com';
try {
    $url->save();
} catch (Exception $e) {
    //       
}

但它仍然会抛出MySQL错误并且代码停止。

QueryException in Connection.php line 614:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'http://www.example.com' for key 'url_index' (SQL: insert into `urls` (`url`, `updated_at`, `created_at`) values (http://www.example.com, 2015-02-15 09:25:40, 2015-02-15 09:25:40))

1 个答案:

答案 0 :(得分:1)

我认为这可能是命名空间的问题,尝试这样的事情:

$url = new \App\Url;
$url->url = 'http://www.example.com';
try {
    $url->save();
} catch (\Exception $e) {
    //       
}
相关问题