Laravel“ \ Request :: route()-> getName()”给出空结果

时间:2019-05-04 07:22:15

标签: laravel

我正在使用带有Spatie Permissions软件包的Laravel,并且工作正常!

我还尝试使用Authorizable特性来管理角色和权限。

问题似乎出在$routeName = explode('.', \Request::route()->getName());上。

我希望从\Request::route()->getName()得到的结果posts.index,但我为空。

\Request::route()->getName()仅在我通过使用->name('posts/index')(结果为posts/index)在路由中定义了属性“名称”时起作用

为什么\Request::route()->getName()在我的应用中为null?我在做什么错了?

3 个答案:

答案 0 :(得分:1)

您可以使用

   Route::currentRouteName(); //use Illuminate\Support\Facades\Route;

但您也可以通过以下方式获取路线的操作

Route::getCurrentRoute()->getActionName();

答案 1 :(得分:0)

要获取路线名称,您需要使用

$name = Route::currentRouteName();

use Illuminate\Support\Facades\Route;

Request::route()->getName()仅适用于laravel <5。*

答案 2 :(得分:0)

我不确定为什么要得到这个,但是如果该路由不是资源路由,那么该路由必须具有->name()(如果要使用路由名称)。