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

Метод messages

Метод messages применяется в классе запроса, наследующем FormRequest, и возвращает массив с пользовательскими сообщениями об ошибках. Ключами массива являются имена полей и правил в формате 'field.rule', а значениями - тексты сообщений. Если стандартное сообщение не переопределено, будет использовано глобальное сообщение из файла языкового пакета.

Синтаксис

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class ArticleRequest extends FormRequest { public function messages() { return [ 'field.rule' => 'Custom error message', ]; } } ?>

Пример

Давайте создадим класс запроса для валидации статьи и переопределим стандартные сообщения для полей 'title' и 'content':

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class ArticleRequest extends FormRequest { public function rules() { return [ 'title' => 'required|string|max:255', 'content' => 'required|string|min:10', 'category_id' => 'required|integer|exists:categories,id', ]; } public function messages() { return [ 'title.required' => 'The article title is required.', 'title.max' => 'The title must not exceed 255 characters.', 'content.required' => 'The article content is required.', 'content.min' => 'The content must be at least 10 characters long.', 'category_id.required' => 'Please select a category.', 'category_id.exists' => 'The selected category does not exist.', ]; } } ?>

Пример

Теперь используем этот запрос в контроллере и посмотрим, какие сообщения будут выведены при ошибках валидации:

<?php namespace App\Http\Controllers; use App\Http\Requests\ArticleRequest; use App\Models\Article; use Illuminate\Http\Request; class ArticleController extends Controller { public function store(ArticleRequest $request) { $article = Article::create($request->validated()); return response()->json([ 'message' => 'Article created successfully', 'article' => $article ]); } } ?>

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

{ "message": "The article title is required.", "errors": { "title": ["The article title is required."] } }

Пример

Метод messages позволяет использовать параметры правил в тексте сообщения с помощью плейсхолдеров :attribute, :min, :max и других:

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class UserRequest extends FormRequest { public function rules() { return [ 'name' => 'required|string|min:2|max:50', 'email' => 'required|email|unique:users,email', 'age' => 'required|integer|min:18|max:120', 'password' => 'required|string|min:8|confirmed', ]; } public function messages() { return [ 'name.required' => 'The :attribute field is required.', 'name.min' => 'The :attribute must be at least :min characters.', 'name.max' => 'The :attribute may not be greater than :max characters.', 'email.required' => 'We need your email address.', 'email.email' => 'Please enter a valid email address.', 'email.unique' => 'This :attribute is already taken.', 'age.required' => 'Your :attribute is required.', 'age.min' => 'You must be at least :min years old.', 'age.max' => 'The :attribute cannot exceed :max years.', 'password.required' => 'The :attribute is required.', 'password.min' => 'The :attribute must be at least :min characters.', 'password.confirmed' => 'The password confirmation does not match.', ]; } } ?>

Пример

Метод messages также поддерживает определение сообщений для всех правил одного поля или для всех полей с одним правилом с помощью символы *:

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class SettingsRequest extends FormRequest { public function rules() { return [ 'notifications' => 'required|boolean', 'privacy' => 'required|string|in:public,private,friends', 'timezone' => 'required|string|timezone', ]; } public function messages() { return [ '*.required' => 'This field is required.', 'privacy.*' => 'Invalid privacy setting.', 'timezone.required' => 'Please select your :attribute.', 'timezone.timezone' => 'The :attribute must be a valid timezone.', ]; } } ?>

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

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