Изменить ответ на запрос перед проверкой, Laravel - PullRequest
2 голосов
/ 05 марта 2020

Я получаю из ответа formData, которую я превращаю в промежуточное программное обеспечение, чтобы использовать его при проверке, проблема в том, что я должен сделать еще одну модификацию, чтобы проверить все элементы из массива без использования array .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

1 Ответ

1 голос
/ 05 марта 2020

На FormRequests вы можете использовать prepareForValidation().

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