laravel - 在验证之前修改请求响应,Laravel

标签 laravel laravel-6

我从响应中得到一个 formData,我将其更改为中间件以在验证时使用它,问题是我必须进行另一项修改以验证数组中的所有元素而不使用“数组.oneElement'。

来自中间件的代码

public function handle($request, Closure $next)
{
    if ($request->has('all_values')) {
        $request->merge([
            'all_values' => json_decode($request->get('all_values'), true)
        ]);
    }

    return $next($request);
}

//来自请求

public function rules()
{
    $validations = [
        'all_values.saleforce_id'                    => 'required',
        'all_values.customer_id'                     => 'required',
        'all_values.lkp_product_category_id'         => 'required',
    ]
    // I need to access this all_values before validations

    if (request()->has('validation_field')) {
            return [request()->validation_field => $validations[ request()->validation_field ]];
        } // this is used for a validation , to do validation onChange

    return $validations;
}


  $request = $request->all()['all_values']; // I need something like this, but this doesn't work

最佳答案

FormRequests 上,您可以使用 prepareForValidation()

protected function prepareForValidation()
{
    $this->merge([
        'all_values' => json_decode($request->get('all_values'), true),
    ]);
}

关于laravel - 在验证之前修改请求响应,Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60542202/

相关文章:

mysql - Laravel 6 - 更新模型时间戳

laravel - 数据剪辑错误 ERROR : cannot execute INSERT in a read-only transaction

PHPExcel如何为行组设置折叠和展开?

laravel - 使用 InstantSearch 显示所有方面

mysql - 如果父表中的行被删除,如何自动从子表中删除行

laravel - 如何使用存储库模式加密 URL (laravel 9) 中的所有 id

laravel - 从 wappalyzer 扩展中隐藏 Laravel 应用程序

php - Laravel 6 - 唯一的自定义 ID 在表变空后不会增加

php - 如何在 Laravel Yajra DataTables 中的关系列上编辑列

php - 我无法使用 Composer 安装 Laravel(缺少 ext-zip 扩展名)