我想在有关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');
}
答案 0 :(得分:1)
首先转到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;
}
}