2017-08-22 93 views
0

我有這樣的路線:Laravel怎麼弄路線基本基於對路由名稱

Route::get('/test',['as'=>'test','custom_key'=>'custom_value','uses'=>'[email protected]']) 

我一直在試圖用$routeProfile=route('test'); 但結果是返回的URL string http://domain.app/test

我需要['as'=>'test','custom_key'=>'custom_value']使我可以獲得$routeProfile['custom_key']

如何根據路由名稱獲取'custom_value'?

+0

這裏'custom_key'意思是什麼? –

+0

嗨@AddWebSolutionPvtLtd,我手動添加它像一些標記路由配置文件。也許我可以爲菜單層次添加'description','parent'或'is_displayed'。 – msdme

+0

我已經用兩種不同的方式添加了答案,您可以根據需要選擇。 –

回答

0

對於最快的方式,現在我用這個,我的問題:

function routeProfile($routeName) 
{ 
    $routes = Route::getRoutes(); 
    foreach ($routes as $route) { 
     $action = $route->getAction(); 
     if (!empty($action['as']) && $routeName == $action['as']) { 
      $action['methods'] = $route->methods(); 
      $action['parameters'] = $route->parameters(); 
      $action['parametersNames'] = $route->parametersNames(); 
      return $action; 
     } 
    } 
} 

如果有任何更好的答案,我將不勝感激。 謝謝...

0

試試這個:

use Illuminate\Support\Facades\Route; 

$customKey = Route::current()->getAction()['custom_key']; 
0

我相信你正在尋找一種方式來傳遞變量路線

Route::get('/test/{custom_key}',[ 
    'uses'=>'[email protected]', 
    'as'=>'test' 
]); 

您可以生成一個有效的URL,像這樣使用 route('test',['custom_key'=>'custom_key_vale'])

在你看來:

<a href="{route('test',['custom_key'=>'custom_key_vale'])}" 

在你的控制器的方法:

.... 

public function test(Request $request) 
{ 
    $custom_key = $request->custom_key; 
} 
.... 
0

你可以試試下面的代碼之一:
添加use Illuminate\Http\Request;後命名行代碼

public function welcome(Request $request) 
{ 
    $request->route()->getAction()['custom_key']; 
} 

2或用門面

添加use Route; af之三namespace行代碼

及以下使用到你的方法

public function welcome() 
{ 
    Route::getCurrentRoute()->getAction()['custom_key']; 
} 

都經過測試,工作正常!