В чем разница между функциями validate () и validated () в Laravel 5.8, PHP? - PullRequest
1 голос
/ 04 июня 2019

Не удалось найти другое определение между функциями validate() и validated() в документации на веб-сайте laravel.com.

Но в файле интерфейса Validator я прочитал комментарий функции следующим образом:

/**
 * Run the validator's rules against its data.
 *
 * @return array
 */
public function validate();

/**
 * Get the attributes and values that were validated.
 *
 * @return array
 */
public function validated();

Я понимаю эти комментарии, но когда я пишу код и тестирую обе функции, я не вижу никакой разницы. Кажется, что оба действуют одинаково:

  1. проверяет данные.
  2. в случае неудачи перенаправляет пользователей на предыдущую страницу.
  3. в случае успеха, вернуть проверенные данные в массиве.

Итак, в чем разница между этими двумя функциями в Laravel 5.8?

В моем случае я использую проверку следующим образом, потому что я не хочу перенаправлять пользователей обратно на их предыдущую страницу, когда проверка не удалась.

$validator = validator($array_data, $array_rules, $array_message);

if ($validator->fails()) {
    // Do something
} else {
    $validated_data = $validator->validate();
    // Here I am not sure if I should use the validated() function, because I do not see the difference between these two functions.
    // $validated_data = $validator->validated();    
}

1 Ответ

2 голосов
/ 04 июня 2019

Похоже, что безопасно использовать либо, по крайней мере в настоящее время. Вот источник для validate():

public function validate()
{
    if ($this->fails()) {
        throw new ValidationException($this);
    }

    return $this->validated();
}

Как видите, возвращаемое значение является результатом validated().

Тем не менее, я 'лично я использовал validate() для проверки и validated() для получения проверенных данных.Это должно оградить вас от возможных будущих изменений в функции validate() (если, скажем, она была изменена для возврата true / false вместо этого) и в результате получится немного более читаемый код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...