【发布时间】:2016-10-21 00:00:45
【问题描述】:
我已经定义了一个这样的虚拟路由:
Route::get('sth/{v1}/{v2}' , [
'uses'=>'SthController@sth',
]) ;
如何获取外部控制器 v1 和 v2 的值?
【问题讨论】:
-
比如……在哪里?在路由文件中,在服务提供者中,在中间件中......?
我已经定义了一个这样的虚拟路由:
Route::get('sth/{v1}/{v2}' , [
'uses'=>'SthController@sth',
]) ;
如何获取外部控制器 v1 和 v2 的值?
【问题讨论】:
没试过,但认为它的Route::current(),从任何地方使用来访问参数
$currentParams = Route::current()->parameters();
【讨论】:
您可以像这样在任何地方获取 v1 和 v2 的值:
request()->v1;
request()->v2;
【讨论】:
您可以在通过时将数据放入控制器中的会话中,然后从任何地方获取您想要的数据,
Session::put('v1');
Session::put('v2');
现在您可以访问任何地方,例如:
Session::get('v1')
Session::get('v2')
如果您需要删除会话数据,只需使用
Session::forget('v1')
Session::forget('v2')
【讨论】:
使用此代码
$current_params = Route::current()->parameters();
dd($current_params->v1) ;
【讨论】:
这可以是另一种方式:
Route::getCurrentRoute()->getParameter('v1')
【讨论】:
在 Laravel 5.6 中对我来说是:
Route::current()->parameters['v1']
Route::current()->parameters['v2']
等等……
【讨论】: