Как сделать одну ошибку проверки для 2 полей - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть 2 поля для почтового индекса main и sub.

<input type="text" name="postal01">
<input type="text" name="postal02">

Я хотел бы добавить проверку числового значения и размера обоих полей.Я хочу показать ошибку валидации для одного поля как postal_cd, а не для каждой ошибки поля.

Я пытался в классе запросов расширенный FormRequest.

class MemberRequest extends FormRequest
{
  public function all($keys = null)
  {
    $result = parent::all($keys);

    if($this->filled('postal01') && $this->filled('postal02')) {
        $results['postal_code'] = $this->input('postal01') . $this->input('postal02');
    }
    return $result;
}

Однако это не сработало, как я ожидал.

Как мне справиться с этим делом?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Это была моя опечатка.

class MemberRequest extends FormRequest
{
  public function all($keys = null)
  {
    $result = parent::all($keys);

    if($this->filled('postal01') && $this->filled('postal02')) {
      $result['postal_code'] = $this->input('postal01') . $this->input('postal02');
   // $results['postal_code'] = $this->input('postal01') . $this->input('postal02');
    }
    return $result;
}

Возвращенное значение должно было быть $ result.Но это были опечатки $ [postal_code].Это работает.

0 голосов
/ 09 февраля 2019

Вы можете использовать После проверки .Добавьте в запрос формы следующее:

/**
* Configure the validator instance.
*
* @param  \Illuminate\Validation\Validator  $validator
* @return void
*/
public function withValidator($validator)
{
    $validator->after(function ($validator) {
        if($validator->errors()->has('postal01') || $validator->errors()->has('postal02')) {
            $validator->errors()->add('postal_cd', 'Please enter a postal code');
        }
    });
}

... и затем отобразите его на своем блейде:

{{ $errors->first('postal_cd') }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...