我设置了Laravel路线,如下例所示:
Route::group(array('domain' => 'example.com'), function()
{
Route::get('/', array('as' => 'root.index', 'uses' => 'RootController@Index'));
[...]
});
Route::group(array('domain' => 'api.example.com'), function()
{
Route::when('*', 'ApiFilter');
Route::get('/', array('as' => 'api.index', 'uses' => 'ApiController@Index'));
[...]
});
现在,当涉及响应有错误的请求(例如404,403,500等)时,Laravel使用App :: error及其相关方法提供了一个很好的解决方案.
我想以不同的方式响应错误,具体取决于请求是针对root还是api域.
我可以使用App :: error吗?
希望有道理.
谢谢
最佳答案 是的,你可以这样做.只需要从异常处理程序中的$exception对象获取请求对象,例如,如果你有这样的异常处理程序:
App::error(function(Exception $exception, $code)
{
$request = $exception->getTrace()[0]['args'][0];
$path = $request->path(); // will return path without domain, i.e. user/1
// Take some action depending on the $path
});
现在,根据路径,您可以采取行动.您可以使用Request类的任何公共方法,例如if($request->是(‘admin / *’))或$request-> url()来获取带域的完整url.