/** Redirect 404's to home
*****************************************/
App::missing(function($exception)
{
// return Response::view('errors.missing', array(), 404);
return Redirect::to('/');
});
我在routes.php文件中有这个代码。我想知道如果有404错误,如何重定向回主页。这可能吗?
答案 0 :(得分:58)
为此,你需要在app / Exceptions / Handler.php文件中添加几行代码来渲染方法,如下所示:
public function render($request, Exception $e)
{
if($this->isHttpException($e))
{
switch ($e->getStatusCode())
{
// not found
case 404:
return redirect()->guest('home');
break;
// internal error
case '500':
return redirect()->guest('home');
break;
default:
return $this->renderHttpException($e);
break;
}
}
else
{
return parent::render($request, $e);
}
}
答案 1 :(得分:2)
我只想添加一个清理它的建议。我想把接受的答案归功于让我开始。在我看来,因为这个函数中的每个动作都会返回一些东西,所以switch和else语句会产生一些膨胀。所以为了清理它,我做了以下几点。
List<PackageInfo> packList = getPackageManager().getInstalledPackages(0);
for (int i=0; i < packList.size(); i++)
{
PackageInfo packInfo = packList.get(i);
if ( (packInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0)
{
String appName = packInfo.applicationInfo.loadLabel(getPackageManager()).toString();
;
Log.e("App " + Integer.toString(i), appName +" ver: "+packInfo.versionCode);
}
}
答案 2 :(得分:0)
您可以这样做:
open:app \ Exceptions \ Handler.php
在handler.php中,您可以替换以下代码:
return parent::render($request, $exception);
由此:return redirect('/');
非常有效 例如:
public function render($request, Exception $exception)
{
return redirect('/');
//return parent::render($request, $exception);
}