【问题标题】:Laravel 5 - Route not available in notFoundHttpExceptionLaravel 5 - 路由在 notFoundHttpException 中不可用
【发布时间】:2016-08-16 14:47:09
【问题描述】:

目前我遇到了一个难以修复的错误。该错误与\Request::route() 在触发notFoundHttpException 并呈现我的自定义错误视图时返回NULL 有关。

问题是我的应用程序需要当前路由才能执行各种操作。我认为..::route() 返回NULL 是“正常的”,因为路由不存在。

这是我显示自定义错误视图的地方:

// App\Exceptions\Handler
return response()->view('layouts.default', [
    'main_content' => view('errors.'.$e->getStatusCode())
], $e->getStatusCode());

当我在视图中调用 \Request::route() 时,它会返回 NULL

有人知道如何以干净的方式解决这个问题吗?

编辑

我目前正在开发的应用程序是一个多域系统。需要路由来确定当前请求的域。

所有路由都封装在一个组中:

Route::group(['domain' => {domain}.{tld}], function()
{
    // Application routes...
}

确定域:

$domain = \Request::route()->domain;

$tld = \Request::route()->tld;

// Retrieve from database...

是的,有一些解决方法,例如:

// Url requested: mydomain.com/notexistingpage

$url_parameters = @explode(".", $_SERVER['HTTP_HOST']);

$domain = $url_parameters[0];

$tld = $url_parameters[1];

// Retrieve from database...

但是我想继续使用路由器来提供参数。我会将此问题标记为已回答。

【问题讨论】:

    标签: laravel laravel-5 routes request


    【解决方案1】:

    试试这个

    \Route::getFacadeRoot()->current()->uri();
    

    \Route::getCurrentRoute();
    

    【讨论】:

    • 感谢您的回答,但它不起作用。就像我说的那样,路线不存在,所以它返回 null。我将更新我的问题,以明确我的应用程序“需要”路由的原因。
    【解决方案2】:

    解决方法可能是:

    // Url requested: mydomain.com/notexistingpage
    
    $url_parameters = @explode(".", $_SERVER['HTTP_HOST']);
    
    $domain = $url_parameters[0];
    
    $tld = $url_parameters[1];
    
    // Retrieve from database...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 2017-08-10
      • 1970-01-01
      • 2016-09-25
      • 1970-01-01
      • 1970-01-01
      • 2015-11-23
      相关资源
      最近更新 更多