laravel - 如何将所有 \Illuminate\Http\Request $request 数据设置为 FormRequest 对象以在 LARAVEL 中的控制器中使用
问题描述
我创建了用于数据验证的表单请求,我还创建了用于请求修改的中间件,该中间件通过\Illuminate\Http\Request
从查询参数中获取值在对象中添加一个键
我希望\Illuminate\Http\Request
将由中间件修改的对象数据附加到表单请求中,以便我可以在控制器中使用 $request 对象进一步用户
我已经编写了中间件代码baseformrequest(custom class)
并将该方法调用到我的formrequest
.
中间件代码:
public function handle($request, Closure $next)
{
$requested_method = $request->route()->getActionMethod();
$required_with = [];
if($requested_method == 'show'){
if (!is_null($request->get('_with'))) {
$required_with = explode(',', $request->get('_with'));
}
}
$request->with = $request->get('_with');
return $next($request);
}
我希望所有修改后的请求对象都可以在我的表单请求对象中访问,但我无法在我的 Laravel 控制器中访问
解决方案
您可以像这样向请求对象添加自定义属性
$request->attributes->add(['with' => $required_with])
然后你可以使用它访问它
$request->get('with');
推荐阅读
- android - 具有网络约束的 WorkManager 未在 android 9 模拟器上运行
- jquery - 使用按钮单击删除 div 行
- react-native - undefined 不是对象(评估 '_expo.default.Constants')
- mysql - Docker MySQL 连接 DBeaver
- python - 对分销商的销售额进行合计,得到每个分销商在所有分销商的总销售额中所占的百分比
- android - 如何创建打开多张照片的意图,而无需先导航到“照片”
- python - 有没有更好的 Pythonic 方式来编写这段代码?
- r - 使用闪亮的 renderDataTable 扩展按钮的图标
- javascript - 当用户打开新标签或转到另一个标签时如何发出通知?
- android - 仅在 Android 中的 Tensorflow .pb 文件就足够了