2015-06-22 6 views
1

Здравствуйте,Laravel валидатор против запросов

Я хочу понять, как обрабатывать проверки данных с Laravel 5. Я вижу, что это может быть сделано с помощью или валидатор или файлы запроса. Дело в том, что я не получил много очков.

  • В чем разница между использованием файла запроса для проверки или класса валидатора?
  • Если у меня есть условия проверки, и я хочу использовать их только в том случае, если соответствующее поле было отправлено, как я могу это сделать? Если я использую ключевое слово «required», это не сработает, потому что оно не сработает, когда поле не будет отправлено. Если я его не использую, он примет пустые строки ...

Спасибо заранее!

+1

Вы используете L5 или L5.1, вы должны обязательно прочитать документацию еще раз, есть много примеров http://laravel.com/docs/5.1/validation В основном основное отличие состоит в том, что класс запроса проверки обычно более сложный, чем в контроллере. Вы можете создать «запрос на хранение» или «запрос на обновление» и иметь разные правила для действия хранилища и действия по обновлению (это можно сделать в самом контроллере, конечно, потому что у вас есть два метода, я имею в виду метод обновления, где вы устанавливаете правила для обновления. .) Пожалуйста, прочитайте дополнительную документацию или выполните поиск по laracasts по этому вопросу. – Kyslik

+0

Спасибо за помощь! Я проверю еще кое-что по этому поводу, но иногда сложно получить все это или даже понять, что все говорит о том, что вы хотите, когда начинаете с новой структуры :) –

+0

Лично я проверяю все, что запросит его " ударить "перед самим контроллером, поэтому, когда проверка прошла, я на 100% уверен, что ввод проверяется только с одной строкой (запрос на инъекцию в методе контроллеров). В качестве ответа ниже был приведен его действительно чистый код. Сначала мне нравилось «так много файлов ...», мне сначала не нравилась идея, но теперь, когда у меня много ресурсов, ясно, что делает каждый файл. – Kyslik

ответ

2

1. Теоретически нет никакой разницы между контроллером проверки и валидации с использованием СформироватьЗапрос. Обычно вы должны использовать FormRequest. Это позволит вашему контроллеру быть чистым и минимальным. Но в какой-то момент разумно использовать Validator в контроллере, например, вы знаете, что будет только одно поле для проверки, тогда было бы излишним использовать FormRequest. Так что это вопрос предпочтения.

2. Вам не обязательно использовать «обязательный», если это поле не требуется. Другая проверка для этого поля будет выполняться, если это поле будет отправлено. Если ничего не отправлено, ничего не произойдет.

....... 
    'money' => 'numeric', 
    ....... 

Выше Правило будет гарантировать, что денежное поле является числовым, только если оно отправлено. Если ни одна из сторон не представила ошибку проверки, она будет выброшена.

Надеюсь, это поможет.

+0

Спасибо большое! Я тоже попробую это :) –

1
  1. классы Request являются лучшим способом для проверки запросов, потому что они помогают извлечь эту функцию из метода конструктора, , который должен быть как можно более чистым.
  2. Использовать валидатор «иногда». http://laravel.com/docs/5.1/validation#conditionally-adding-rules
+0

Спасибо, я попробую это и удержусь! Если все будет хорошо, я подтвержу ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^