2017-01-17 2 views
0

Как я могу получить все имя запроса внутри контроллера внутри $validator->fails()Как я могу получить имя запроса внутри контроллера

$validator = Validator::make($request->all(), [ 
    'patient_uname' => 'required|max:255|Alpha', 
    'patient_pass' => 'required|max:255|Alpha' 
]); 

if ($validator->fails()) { 

} 

Например, если patient_uname не удается, следует отображать patient_name

+0

'$ request-> patient_uname' это , –

+0

, который отобразит значение, которое я хочу, чтобы он отображал имя_памята буквально – Christian

ответ

1

Вы можете получить ключи от всех неудачных полей, как это:

if ($validator->fails()) { 
    dd($validator->errors()->keys()); 
} 

Возвращает это:

array:2 [ 
    0 => "patient_uname" 
    1 => "patient_pass" 
] 

You может получить все сообщения об ошибках, подобные этому

if ($validator->fails()) { 
    dd($validator->errors()->all()); 
} 

возвращает это:

array:2 [ 
    0 => "The patient uname field is required." 
    1 => "The patient pass field is required." 
] 

Вы можете получить одно конкретное поле, как это:

if ($validator->fails()) { 
    dd($validator->errors()->get('patient_uname')); 
} 

Возвращает это:

array:1 [ 
    0 => "The patient uname field is required." 
] 
+0

Я пробовал эхо-повторить '$ validator-> errors() -> keys()', но он не работает – Christian

+0

Я фактически использую ajax, поэтому я не вижу ошибка, но я знаю, что что-то не так, потому что есть внутренняя ошибка сервера, если что-то не так с контроллером, dd работает, но echo is not – Christian

+0

'$ validator-> errors() -> keys()' - массив со всеми неудачными полями , и вы не можете эхо-массива. Для вызова ajax вы можете использовать 'return response() -> json ($ validator-> errors());' и он должен иметь всю необходимую информацию для интерфейса. –

1

Проверить это

public function postReset(Request $request) 
    { 
      $message = [ 
       'patient_uname.required' => 'Patient name is required', 
       'patient_pass.required' => 'Patient pass is required' 
      ]; 
      $this->validate(
       $request, 
       [ 
       'patient_uname' => 'required|max:255|Alpha', 
       'patient_pass' => 'required|max:255|Alpha' 
       ], 
       $message 
      ); 

валидатор принимает три Params

$validator = Validator::make($input, $rules, $messages); 

$messages = ['patient_uname.required' => 'patient name is required']; 
$rules  = ['patient_uname' => 'required|max:255|Alpha']; 

В вашем вопросе просто передать массив сообщение

$validator = Validator::make($request->all(), [ 
    'patient_uname' => 'required|max:255|Alpha', 
    'patient_pass' => 'required|max:255|Alpha' 
], $messages); 
Смежные вопросы