姿勢(shì)1
使用$request->attributes->add($arr)方法
Demo:
注冊(cè)中間件這部分就不說(shuō)了 主要說(shuō)用法
class MidParams //中間件
{
public function handle($request, Closure $next)
{
$mid_params = ['mid_params'=>'this is mid_params'];
$request->attributes->add($mid_params);//添加參數(shù)
return $next($request);//進(jìn)行下一步(即傳遞給控制器)
}
}
class MidController extends Controller { //控制器
public function testMidFunc(Request $request) {
$input_params = $request->input();//獲取參數(shù)
$mid_params = $request->get('mid_params');//中間件產(chǎn)生的參數(shù)
return ['my_params'=>$input_params,
'mid_params'=>$mid_params];
//注意:$request->attributes->add這種方法 input()取不到值 只能用get('xxx')取到值
}
}
下面來(lái)看結(jié)果:
my_params是傳的參,mid_params是中間件生成的參
姿勢(shì)2
使用$request->merge($arr)方法
Demo:
class MidParams //中間件
{
public function handle($request, Closure $next)
{
$mid_params = ['mid_params'=>'this is mid_params'];
$request->merge($mid_params);//合并參數(shù)
return $next($request);
}
}
class MidController extends Controller { //控制器
public function testMidFunc(Request $request) {
$all_params = $request->input();//獲取參數(shù)
return ['all_params'=>$all_params];
}
}
結(jié)果:
merge后$request->input()能獲取到所有的參數(shù)
以上這篇laravel在中間件內(nèi)生成參數(shù)并且傳遞到控制器中的2種姿勢(shì)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- laravel利用中間件做防非法登錄和權(quán)限控制示例
- 淺談Laravel中的三種中間件的作用
- Laravel獲取當(dāng)前請(qǐng)求的控制器和方法以及中間件的例子
- Laravel框架控制器的middleware中間件用法分析
- laravel利用中間件防止未登錄用戶(hù)直接訪問(wèn)后臺(tái)的方法
- Laravel 6 將新增為指定隊(duì)列任務(wù)設(shè)置中間件的功能
- laravel框架中間件 except 和 only 的用法示例
- Laravel5.1框架注冊(cè)中間件的三種場(chǎng)景詳解
- 淺談laravel中間件的創(chuàng)建思路