有可能在雄辩的ORM中设置PDO::ERRMODE_SILENT吗?
我尝试使用database.attr_errmode添加setContainer,尝试添加PDO::ATTR_ERRMODE,向addConnection添加attr_mode --什么都不起作用。我想在丢失的cols、重复条目等上try/catch致命错误。
发布于 2018-09-20 21:34:21
调整数据库配置:
'mysql' => [
[...]
'options' => [
PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT,
],
],发布于 2018-09-20 22:52:00
Laravel提供了一个处理所有这些错误的处理程序,这取决于您自定义该错误。当该类型的异常被抛出时,默认行为由App\Exceptions\Handler类处理,您可以自定义它以捕获应用程序抛出的任何类型的异常。
就像您希望在没有找到模型时使用try/catch一样,您可以通过捕获\Illuminate\Database\Eloquent\ModelNotFoundException::class异常类型来处理这个问题。
您可以在Laravel错误处理中读到更多信息。
您可以捕获QueryException类型的任何错误,这些错误是为许多类型的MySQL冲突引发的异常类型,您可以通过自定义handler类的呈现方法来处理这种类型的错误。
public function render($request, Exception $exception)
{
if ($exception instanceof QueryException) {
return response()->view('views.to.be.rendered', [], 500);
}
return parent::render($request, $exception);
}https://stackoverflow.com/questions/52432598
复制相似问题