首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在雄辩的ORM中设置PDO::ERRMODE_SILENT

在雄辩的ORM中设置PDO::ERRMODE_SILENT
EN

Stack Overflow用户
提问于 2018-09-20 20:10:12
回答 2查看 310关注 0票数 0

有可能在雄辩的ORM中设置PDO::ERRMODE_SILENT吗?

我尝试使用database.attr_errmode添加setContainer,尝试添加PDO::ATTR_ERRMODE,向addConnection添加attr_mode --什么都不起作用。我想在丢失的cols、重复条目等上try/catch致命错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-20 21:34:21

调整数据库配置:

代码语言:javascript
复制
'mysql' => [
    [...]
    'options' => [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT,
    ],
],
票数 1
EN

Stack Overflow用户

发布于 2018-09-20 22:52:00

Laravel提供了一个处理所有这些错误的处理程序,这取决于您自定义该错误。当该类型的异常被抛出时,默认行为由App\Exceptions\Handler类处理,您可以自定义它以捕获应用程序抛出的任何类型的异常。

就像您希望在没有找到模型时使用try/catch一样,您可以通过捕获\Illuminate\Database\Eloquent\ModelNotFoundException::class异常类型来处理这个问题。

您可以在Laravel错误处理中读到更多信息。

您可以捕获QueryException类型的任何错误,这些错误是为许多类型的MySQL冲突引发的异常类型,您可以通过自定义handler类的呈现方法来处理这种类型的错误。

代码语言:javascript
复制
public function render($request, Exception $exception)
{
    if ($exception instanceof QueryException) {
        return response()->view('views.to.be.rendered', [], 500);
    }

    return parent::render($request, $exception);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52432598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档