2016-10-21 7 views
1

こんにちは私はこのようにしようとしていますが、すべてのルートを取得しています。特定のグループのルートのみが必要です。laravel 5の特定のグループでルートリストを取得する方法は?

これは私のコードです:事前に

<?php 
$routes = Routes::getRoutes(); 
@foreach($routes as $route) 
    {{ $route->getPath() }} 
@endforeach` 

ありがとう!

+1

を助けを取っコピーして、ルートフォルダに貼り付けて、あなたがyour_project_public_folder_url /クマー**

//を押すことで出力を見ることができますたとえば –

+0

の例を挙げてください。私は特定のルートグループに関連するいくつかの特定のルートを格納するテーブルにcolumnという名前のアクセス許可を持っています。 –

答えて

1

// のは、グループ

Route::group(['as' => 'admin'], function() { 
    Route::get('users', function() { 
     return "users route"; 
    }); 

    Route::get('ravi', function() { 
     return "ravi route"; 
    }); 

// といくつかのルートを作成する任意のグループ今

Route::get('/', function() { 
    return view('welcome'); 
}); 

Route::get('/load', '[email protected]'); 

// せずに、いくつかのルートのを持ってみましょう今、私たちは、ルートを作成しようとしていますこのグループでは // adminグループを検索し、このグループ内のすべてのルートを表示します。 //

Route::get('kumar', function() { 
    $name = 'admin'; 
    $routeCollection = Route::getRoutes(); // RouteCollection object 
    $routes = $routeCollection->getRoutes(); // array of route objects 

今私達のルートオブジェクトでは、我々は //配列をフィルタリングすることによって、私たちの名前のルートを探します。

$grouped_routes = array_filter($routes, function($route) use ($name) { 
      $action = $route->getAction(); // getting route action 
      if (isset($action['as'])) { 

       // for the first level groups, $action['as'] 
       //will be a string 
       // for nested groups, $action['as'] will be an array 

       if (is_array($action['as'])) { 
        return in_array($name, $action['as']); 
       } else { 
        return $action['as'] == $name; 
       } 
      } 
      return false; 
     }); 


    // let's print the array containing the route objects in the 'admin' group 
     dd($grouped_routes); 
    }); 

}); 

// **ちょうど私がこの回答からAnswer of patricus

関連する問題