Установите PDO :: ERRMODE_SILENT в Eloquent ORM - PullRequest
0 голосов
/ 20 сентября 2018

Можно ли установить PDO::ERRMODE_SILENT в Eloquent ORM?

Я пытался добавить database.attr_errmode, используя setContainer, пытался добавить PDO::ATTR_ERRMODE, attr_mode к addConnection, ничего не получалось.Я хочу try/catch фатальные ошибки при отсутствии cols, повторяющихся записей и т. Д.

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

В 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);
}
0 голосов
/ 21 сентября 2018

Настройте конфигурацию базы данных:

'mysql' => [
    [...]
    'options' => [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT,
    ],
],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...