Laravel 在控制器外部获取路由参数
Posted
技术标签:
【中文标题】Laravel 在控制器外部获取路由参数【英文标题】:Laravel get Route parameters outside controller 【发布时间】:2016-10-21 00:00:45 【问题描述】:我已经定义了一个这样的虚拟路由:
Route::get('sth/v1/v2' , [
'uses'=>'SthController@sth',
]) ;
如何获取外部控制器 v1 和 v2 的值?
【问题讨论】:
比如……在哪里?在路由文件中,在服务提供者中,在中间件中......? How to get current route name in laravel 5?的可能重复 【参考方案1】:没试过,但认为它的Route::current()
,从任何地方使用来访问参数
$currentParams = Route::current()->parameters();
【讨论】:
【参考方案2】:您可以像这样在任何地方获取 v1 和 v2 的值:
request()->v1;
request()->v2;
【讨论】:
【参考方案3】:您可以在通过时将数据放入控制器中的会话中,然后从任何地方获取您想要的数据,
Session::put('v1');
Session::put('v2');
现在您可以访问任何地方,例如:
Session::get('v1')
Session::get('v2')
如果您需要删除会话数据,只需使用
Session::forget('v1')
Session::forget('v2')
【讨论】:
【参考方案4】:使用此代码
$current_params = Route::current()->parameters();
dd($current_params->v1) ;
【讨论】:
【参考方案5】:这可以是另一种方式:
Route::getCurrentRoute()->getParameter('v1')
【讨论】:
【参考方案6】:在 Laravel 5.6 中对我来说是:
Route::current()->parameters['v1']
Route::current()->parameters['v2']
等等……
【讨论】:
以上是关于Laravel 在控制器外部获取路由参数的主要内容,如果未能解决你的问题,请参考以下文章