как изменить ключ ошибки проверки в laravel - PullRequest
0 голосов
/ 25 января 2020

Я новичок в laravel и работаю над API, я сделал API, в котором я реализовал проверку. Все работает нормально, но я застрял на мелочи. Я хочу изменить имя ключа в ошибке проверки. Например, для «уникальной» ошибки проверки. Это то, что сейчас показывает

enter image description here

Я хочу переименовать «email» (текст) ключ с «message» (текст)

Я пробовал так много вещей в файле подсветки / поддержки / проверки. php

messagebag. php файл, но если он изменился, то показ ошибки "data undefined".

Ссылки я Далее следуют

https://stillat.com/blog/2018/04/21/laravel-5-message-bags-adding-messages-to-the-message-bag-with-add

https://laracasts.com/discuss/channels/laravel/custom-validation-message-for-array-using-different-key?page=0

Переопределить laravel Сообщение проверки

Это код подтверждения

$validator = Validator::make($request->all(), [ 
      'first_name' => 'required',
      'last_name' => 'required',
      'email' => 'required|email|unique:users',
      'fcm_token' => 'required',
      'password' => 'required',  
      'c_password' => 'required|same:password' 
    ]); 

Ответы [ 4 ]

1 голос
/ 28 января 2020

Вы можете вручную l oop над ошибкой MessageBag и построить ответ для замены ключа

    $validator = Validator::make($request->all(), [ 
      'first_name' => 'required',
      'last_name'  => 'required',
      'email'      => 'required|email|unique:users',
      'fcm_token'  => 'required',
      'password'   => 'required',  
      'c_password' => 'required|same:password' 
    ]);   

    $errors = [];
    foreach ($validator->errors()->messages() as $key => $value) {
        if($key == 'email')
            $key = 'message';
        $errors[$key] = is_array($value) ? implode(',', $value) : $value;
        //implode is for when you have multiple errors for a same key
        //like email should valid as well as unique
    }

    $result = array("status" => count($errors)?0:1, 'data'=>$errors);
    return $result;
0 голосов
/ 19 апреля 2020

если я хорошо понимаю проблему. Это поможет вам:

a https://laravel.com/docs/7.x/validation#rule-unique

В вашем случае:

'email' => 'required|email|unique:users,message'

уникально: таблица, столбец, кроме, idColumn

Надеюсь, это поможет.

0 голосов
/ 28 января 2020

В ресурсах - lang - en (или Any Langauge) - проверка. php

Поставьте этот код внизу:

'attributes' => [
    'email' => 'The Email', 
],
0 голосов
/ 25 января 2020

В Ларвале вы можете использовать это

'email'=>'required|email'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...