php - 在服务提供者中合并到请求的参数在服务提供者之外丢失 - Laravel 5.6
问题描述
我在 Laravel 5.6 中的服务提供者中遇到了异常行为
我有一个自定义验证规则,它曾经存在于我的表单请求中。它在表单请求中工作得很好,但是我决定将它和其他一些规则移到自定义服务提供者中,并且后来遇到了一个奇怪的问题。
Validator::extend(
'spatial_reference',
function ($attribute, $value, $params, $validator) {
$spatialReferences = calculateSpatialReferences($value);
if (!empty($spatialReferences['latitude'])) {
request()->merge($spatialReferences);
Log::info(request()->all());/*The fields are merged here*/
return true;
}
return false;
},
'The :attribute is not in a valid format.'
);
当从表单请求运行上述内容时,一切都很好,一旦表单请求成功验证,纬度、经度和网格参考就可以从请求中获得。
但是,如果我将代码移动到自定义服务提供程序的引导方法,请求合并工作,我可以通过记录它来验证数组是否合并到请求,但是新字段不存在并且无法在服务之外访问提供者。
我认为这与生命周期有关,但即使经过大量的在线研究,我也找不到原因。
我很感激一个指向正确方向的指针。
解决方案
推荐阅读
- amazon-web-services - EC2 实例服务器不接受 HTTPS 请求
- python - Python OpenCV - 过滤掉不在附近的轮廓
- javascript - 将sql查询转换为sequelize查询
- python-3.x - ModuleNotFoundError:在 venv 中安装 django 时没有名为“django”的模块
- ios - UIActivityViewController 将 2 个 PDF 副本保存到文件应用程序
- javascript - 构建一个应用程序,给我一些我可以点击的网页标题
- php - 当我在 Heroku 上推送我的 Laravel PHP 应用程序时,Google-Login with Socialite 不起作用
- angular - 如何在angular2中获取多选下拉选定值
- django - 自定义模板表单字段 django
- python - 如何在 Google Colab 上进行静态图像导出