如何使用路径路径访问laravel中的路由属性?

时间:2017-11-06 11:13:32

标签: laravel laravel-5 laravel-5.4

我在名为reports的包中有以下路由。

Route::get('reports/search-beneficiary-details', ['uses' => 'ReportsController@searchBeneficiaryDetails', 'permission' => ['reports.app.reports.search-beneficiary-details', 'Search Details']]);

如何使用路径路径获取路径的权限属性?

我可以在视图中访问当前路由对象,如下所示,我可以获得权限属性

<?php $routeAtr = Route::getCurrentRoute()->action;dd($routeAtr['permission']) ?>

但对于任何给定的路径路径,如何访问权限属性?

1 个答案:

答案 0 :(得分:0)

以下代码可以解决问题:

// get all routes
$routes = \Route::getRoutes();

// get a single route by name
$route = $routes->getByName($routeName);

// get permission
$routeAtr = $route->action;
dd($routeAtr['permission']);

但是,如果您有多条路径具有相同路径但方法不同,则需要在方程式中添加方法。为此,您需要准备一个Request对象,并使路由器将其与可用路由进行匹配。请尝试以下代码:

$request = new Request();
$request->setMethod('post');
$request->server->set('REQUEST_URI', 'some/path');

$routes = \Route::getRoutes();
$route = $routes->match($request);

$routeAtr = $route->action;
dd($routeAtr['permission']);