我有这条路线:
Route::get('/test',['as'=>'test','custom_key'=>'custom_value','uses'=>'TestController@index'])
我已尝试使用$routeProfile=route('test');
但结果是返回的网址string http://domain.app/test
我需要['as'=>'test','custom_key'=>'custom_value']
才能获得$routeProfile['custom_key']
我如何获得' custom_value'根据路线名称?
答案 0 :(得分:0)
试试这个:
use Illuminate\Support\Facades\Route;
$customKey = Route::current()->getAction()['custom_key'];
答案 1 :(得分:0)
我相信您正在寻找一种方法将变量传递给您的路线
Route::get('/test/{custom_key}',[
'uses'=>'TestController@index',
'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;
}
....
答案 2 :(得分:0)
您可以尝试以下代码之一:
1。在命名空间行代码
use Illuminate\Http\Request;
public function welcome(Request $request)
{
$request->route()->getAction()['custom_key'];
}
<强> 2。或与外观
在use Route;
行代码
namespace
并在下面使用您的方法
public function welcome()
{
Route::getCurrentRoute()->getAction()['custom_key'];
}
两者都经过测试且工作正常!
答案 3 :(得分: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;
}
}
}
如果有更好的答案,我会很感激。 感谢...