Laravel如何根据路线名称获取路线配置文件

时间:2017-08-22 09:01:01

标签: laravel routing routes laravel-5.4 router

我有这条路线:

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'根据路线名称?

4 个答案:

答案 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;
        }
    }
}

如果有更好的答案,我会很感激。 感谢...