簡體   English   中英

Laravel 4如何通過組名獲取路由

[英]Laravel 4 how get routes by group name

在Laravel中,我知道我可以使用`Route :: getRoutes()獲取所有路由,但是我找不到是否可以獲取指定組中包含的所有路由的列表。

例如,我有此路由文件:

Route::group(array('group_name' => 'pages'), function() {
    Route::any('/authentication', array('as' => 'authentication', 'uses' => 'LogController@authForm' ));
    Route::group(array('before' => 'auth_administration'), function() {
        Route::any('/tags_category/index', array('as' => 'index-tags-categories', 'uses' => 'TagsCategoryController@index'));
        Route::any('/tags_category/update', array('as' => 'update-tags-category', 'uses' => 'TagsCategoryController@update'));
    });
});

Route::group(array('before' => 'auth_administration'), function() {
    Route::any('/tags_category/store', array('as' => 'store-tags-category', 'uses' => 'TagsCategoryController@store')); 
    Route::any('/tags_category/update/{id}', array('as' => 'update-form-tags-category', 'uses' => 'TagsCategoryController@updateForm')); 
    Route::any('/tags_category/delete/{id}', array('as' => 'delete-tags-category', 'uses' => 'TagsCategoryController@delete'));
}); // operazioni protette 

在我的控制器中,我只想獲取包含在第一組(變量為“ group_name”的一組)中的路由。

可能嗎? 如果可以,我該怎么辦? 謝謝

在第一個參數中傳遞給組的屬性存儲在action數組中的路由上。 可以通過路由上的getAction()方法訪問此數組。 因此,一旦訪問路線對象,就可以基於此信息進行過濾。

$name = 'pages';
$routeCollection = Route::getRoutes(); // RouteCollection object
$routes = $routeCollection->getRoutes(); // array of route objects
$grouped_routes = array_filter($routes, function($route) use ($name) {
    $action = $route->getAction();
    if (isset($action['group_name'])) {
        // for the first level groups, $action['group_name'] will be a string
        // for nested groups, $action['group_name'] will be an array
        if (is_array($action['group_name'])) {
            return in_array($name, $action['group_name']);
        } else {
            return $action['group_name'] == $name;
        }
    }
    return false;
});

// array containing the route objects in the 'pages' group
dd($grouped_routes);

技術人員可以列出應用程序的所有路線

php artisan routes --name=admin

在Laravel 5中

php artisan route:list --name=admin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM