#laravel #validation
Вопрос:
Я пытался настроить пользовательские сообщения об ошибках для проверки полей в контроллере laravel.
Я установил пользовательские сообщения, но я не могу понять, как создать правило::в полевых условиях.
Я вставляю контроллер ниже .
public function registerNewAnkda(Request $request) { $attr = $request-gt;validate([ 'game_id' =gt; ['required','numeric'], 'market' =gt; ['required',Rule::in(['Kalyan', 'Time','Ratan','Main','Milan'])], 'DoN' =gt; ['required',Rule::in(['Day', 'Night'])], 'OoB' =gt; ['required',Rule::in(['Open', 'Bandh','Jodka'])], 'type' =gt; ['required',Rule::in(['Ankda'])], 'selection' =gt; ['required','numeric',Rule::in(['0', '1','2','3','4','5','6','7','8','9'])], 'stake_amt' =gt; ['required','numeric'], 'to_win_amt' =gt; ['required','numeric'], ], //Below code is used to display custom validation error messages! [ 'game_id.numeric' =gt; 'The :attribute should be Unique and Numeric ! MSG FOR PINKA !', 'selection' =gt; 'Rule::in should be Single Number ! E.G - 0,1,2,3,4,5,6,7,8,9' ] );
Правило::в поле пользовательское сообщение не отображается ! так что любая помощь будет оценена по достоинству !
Ответ №1:
Попробуй это:
if($attr-gt;fails()) { return Redirect::back()-gt;withErrors($attr); }
Чтобы отобразить все ошибки сразу
@if($errors-gt;any()) {!! implode('', $errors-gt;all('lt;divgt;:messagelt;/divgt;')) !!} @endif
Для отображения ошибки в каждом поле.
@error('firstname') lt;div class="error"gt;{{ $message }}lt;/divgt; @enderror
Комментарии:
1. Это определенно может быть использовано для отображения ошибок в файле blade, НО мне это нужно в контроллере, так как это API, и мне нужно отображать сообщения об ошибках в json! поэтому я использовал этот метод реализации пользовательских сообщений об ошибках в самом методе validate ().
2. Поэтому просто добавьте значение переменной $attr в свой json.