Правило Exist завершается ошибкой с нулевым значением, даже если оно связано с правилом Nullable - PullRequest
0 голосов
/ 16 января 2019

Я использую Laravel 5.6 в моем текущем проекте. В правилах объекта Request у меня есть следующая функция правил:

public function rules()
{
    if ($this->input('preset') === self::NO_PRESET) {
        $this->merge(['preset' => null]);
    }
    return [
        'preset' => 'nullable|exists:roles_presets,id',
        ...
    ];
}

Однако, когда 'preset' равно null, правило для exists:roles_presets,id по-прежнему не выполняется. Разве это не должно быть достигнуто, потому что поле пустое и такое значение разрешено правилом nullable?

1 Ответ

0 голосов
/ 16 января 2019

Вместо помещения слияния в функцию rules, переопределите validationData и добавьте туда свою логику.

public function validationData()
{
    if ($this->input('preset') === self::NO_PRESET) {
        $this->merge(['preset' => null]);
    }

    // returns $this->all();
    return parent::validationData();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...