РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
651 of 1392 menu

Метод fails

Метод fails применяется к экземпляру класса Validator и позволяет определить, содержит ли валидация ошибки. Метод возвращает логическое значение: true означает, что валидация не пройдена и есть ошибки, false - что все данные корректны. Обычно используется в условных конструкциях для выполнения различных действий в зависимости от результата валидации.

Синтаксис

<?php $validator = Validator::make($data, $rules); $res = $validator->fails(); ?>

Пример

Давайте выполним валидацию данных и проверим, есть ли ошибки:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; class UserController extends Controller { public function store(Request $request) { $data = $request->all(); $rules = [ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users', 'age' => 'required|integer|min:18' ]; $validator = Validator::make($data, $rules); if ($validator->fails()) { return response()->json([ 'status' => 'error', 'errors' => $validator->errors() ], 422); } return response()->json([ 'status' => 'success', 'message' => 'User created' ]); } } ?>

Результат выполнения кода при ошибках валидации:

{ "status": "error", "errors": { "email": ["The email has already been taken."], "age": ["The age must be at least 18."] } }

Пример

Используем метод fails для проверки валидации в контроллере с редиректом на предыдущую страницу:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; class PostController extends Controller { public function create(Request $request) { $validator = Validator::make($request->all(), [ 'title' => 'required|string|max:100', 'content' => 'required|string|min:10', 'category' => 'required|exists:categories,id' ]); if ($validator->fails()) { return redirect('posts/create') ->withErrors($validator) ->withInput(); } // Save post... return redirect('posts')->with('success', 'Post created'); } } ?>

Пример

Используем метод fails для условной обработки данных в зависимости от результата валидации:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; class ProductController extends Controller { public function update(Request $request, $id) { $validator = Validator::make($request->all(), [ 'price' => 'required|numeric|min:0', 'stock' => 'required|integer|min:0', 'status' => 'required|in:active,inactive' ]); if ($validator->fails()) { // Логируем ошибки Log::error('Product validation failed', [ 'product_id' => $id, 'errors' => $validator->errors()->toArray() ]); return back()->withErrors($validator); } // Обновляем продукт $product = Product::find($id); $product->update($validator->validated()); return redirect('products')->with('success', 'Product updated'); } } ?>

Смотрите также

  • метод passes,
    который проверяет, прошла ли валидация успешно
  • метод errors,
    который возвращает все ошибки валидации
  • метод validated,
    который возвращает отвалидированные данные
  • метод rules,
    который определяет правила валидации в FormRequest
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить