Использование $this->validate()
: YourController
расширяет класс Controller
, который использует черту ValidatesRequests
, и выглядит так:
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
Сама черта ValidatesRequests
состоит из нескольких методов, которые получает базовый контроллер, а затем ваш собственный контроллер и который включает в себя:
validateWith($validator, Request $request = null)
...
validate(Request $request, array $rules, array $messages = [], array $customAttributes = [])
...
validateWithBag($errorBag, Request $request, array $rules, array $messages = [], array $customAttributes = [])
... and so on...
Эти методы помогают сделать некоторые проверки и запросы на обработку ошибок очень удобными и фактически учитывают упомянутый validate()
метод.
Когда в переданном запросе возникает ошибка проверки, это помогает вам обработать ответ, не перегружая контроллер ненужной логикой; то есть, когда это ajax-вызов, он возвращает ответ 422 с телом json, в то время как он возвращает, заполняет пакет ошибок и заполняет переменную $errors
для использования в шаблоне блейда для non-ajax.
Таким образом, это поможет вам только в том случае, если вы не хотите выполнять ручную проверку, создавая экземпляр Validator, поэтому разработчик должен сосредоточиться на выполнении реальной работы;)
UPDATE:
$validator = Validator::make() //creates an instance of the validator for further operations
// You can even do after the creating the instance of validator:
$this->validateWith($validator, $request)
//Lets do both steps above i.e the validation and trigger the Validation Exception if there's failure.
$this->validate($request, [...rules...], [...messages..])
Проверка: https://laravel.com/docs/5.6/validation#quick-writing-the-validation-logic