Как перенаправить пользователей на другую страницу с сообщениями сеанса при возникновении ошибки - PullRequest
0 голосов
/ 27 апреля 2018

Я хочу перенаправить пользователей на страницу администратора при возникновении любой ошибки в пакете thujohn / twitter. Выдает Runtimeexception ..

Поэтому я добавляю пару кодов handler.php

public function render($request, Exception $exception)
{

    if ($exception instanceof \RuntimeException) {
        return redirect()->route('admin.panel')
            ->with('message', 'Please try again later..')
            ->with('message_type','warning');

    } else {
        return parent::render($request, $exception);
    }
}

Но когда я говорю это, он перенаправляет пользователя при всех исключениях, даже при 404 ошибках или попытке получить свойство необъектных ошибок .. Как я могу это исправить? Я хочу перенаправить пользователя только для соответствующей ошибки

Или есть ли способ перенаправить пользователя с условием, как показано ниже.

if($exception->code == 436){
  // it says member has protected access. I can't use it code property outside of the exception class
      return redirect()->route('admin.panel')
            ->with('message', 'Specific error message')
            ->with('message_type','warning');

 }

1 Ответ

0 голосов
/ 27 апреля 2018

Прежде всего перейдите на Exceptions/Handler.php.

Здесь вы можете развивать свои исключения.

Это мой пример на QueryException (вам нужно dd() найти ваше исключение и его код):

use Illuminate\Database\QueryException; // REMEMBER TO USE PROPER INSTANCE


        public function render($request, Exception $exception)
                {
                  //dd($exception); <-- here you can catch and check type od exception
                    switch(true) {

                        case $exception instanceof QueryException:

                            if($exception->getCode() == '23000') {
                                return redirect(
                                    route('get.dashboard.index')
                                )->with('warning', 'No record in database);
                            }
                            break; 
                   }
         }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...