我已经设置了 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
及其相关方法提供了一个很好的解决方案。
我想根据请求是针对根域还是 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
类的任何公共(public)方法,例如 if($request->is('admin/*'))
或 $request->url ()
获取带域的完整 url。
关于php - 您将如何使用 Laravel 处理不同路由的不同错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21638029/