Да, в Laravel возможно поймать значение input
и вставить его в сообщение об ошибке при валидации. Для этого вам нужно использовать правило валидации regex:pattern
, где pattern
- это регулярное выражение, которое определяет, какое значение должно быть введено в поле.
Важно отметить, что если вы хотите использовать значение поля input в пользовательском сообщении об ошибке, нужно создать новую переводимую строку в файле resources/lang/{язык}/validation.php
. Например, чтобы создать кастомное сообщение об ошибке для поля email
, вы должны добавить следующую строку в файле resources/lang/{язык}/validation.php
:
'custom' => [ 'email' => [ 'regex' => 'Поле :attribute должно быть в формате :format.', ], ],
В данном случае :attribute
будет заменено на название поля, а :format
будет заменено на ожидаемый формат значения. Таким образом, вы можете передать в кастомное сообщение всю необходимую информацию для пользователя.
Затем, в правиле валидации в вашем контроллере, вы можете указать правило regex
и указать нужный шаблон:
public function store(Request $request) { $validatedData = $request->validate([ 'email' => 'required|email|regex:/^(foo|bar)$/i', ]); // остальной код }
В этом примере, мы добавили правило regex:/^(foo|bar)$/i
, что означает, что поле email
должно иметь значение "foo" или "bar". Если введенное значение не соответствует этому шаблону, будет сгенерировано сообщение об ошибке, которое будет содержать переданное в поле значение.
Это позволяет создавать более информативные сообщения об ошибках для конечных пользователей в Laravel при помощи персонализированных правил валидации и кастомных сообщений об ошибках.