【问题标题】:Continue code if $model->save() fails如果 $model->save() 失败,继续代码
【发布时间】:2015-04-15 23:21:42
【问题描述】:

即使 $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))

【问题讨论】:

  • 当你使用这段代码时,Laravel 到底抛出了什么异常?
  • 我刚刚编辑了帖子以包含错误消息。它会抛出一个关于数据库中重复条目的错误,这是合理的,因为它是重复的。但我只想忽略错误并继续运行我的代码。

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


【解决方案1】:

我认为这里的命名空间可能有问题,试试这样:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 2022-08-09
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多