php - 您将如何使用 Laravel 处理不同路由的不同错误响应

标签 php laravel laravel-4

我已经设置了 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/

相关文章:

javascript - Vue.js 如何在实例上定义方法

php - 使用我自己的 Laravel API 时如何遵循不要重复自己的原则?

php - 使用枢轴表进行 Eloquent 或查询构建器搜索

php - 未找到 Laravel 类 'HASH'

php - $_POST 不工作。 "Notice: Undefined index: username..."

php - 如何为 Multi-Tenancy 配置 Paypal?

php - Googledrive 应用程序的刷新 token 会过期吗?

php - Blade 翻译文件中的断行

php - 如何让潜在客户在SugarCRM 6.3 CE上拥有多种机会?

php - 如何将 Sqlite 数据库转换为 Mysql