2016-08-16 81 views
0

目前我遇到了一个我觉得难以解决的错误。该错误涉及\Request::route()返回NULLnotFoundHttpException被触发,并且我的自定义错误视图被呈现。Laravel 5 - 不适用于notFoundHttpException的路由

问题是我的应用程序需要当前的路线才能做各种事情。我认为..::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... 

不过,我想继续使用路由器来提供参数。我将这个问题标记为已回答。

回答

0

试试这个

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

\Route::getCurrentRoute(); 
+0

谢谢您的回答,但它无法正常工作。就像我说的那样,路由不存在,所以它返回null。我会更新我的问题,以明确为什么我的应用程序“需要”路线。 –

0

一个解决可能是:

// Url requested: mydomain.com/notexistingpage 

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

$domain = $url_parameters[0]; 

$tld = $url_parameters[1]; 

// Retrieve from database...