Laravel правила проверки пользовательских сообщений со вторым уровнем массива - PullRequest
0 голосов
/ 19 февраля 2020

Вот мой код:

$rules = [
        'name' => 'required|string|max:255',
        'price' => 'required|numeric|min:0',
        'unit' => 'required|in:piece,kg,m',
        'price_type' =>'required|string',
        'service' => [
            'string',
            'required',
            Rule::in($services_ids->all()),
        ],
        'facility' => [
            'string',
            'required',
            Rule::in($facilities_ids->all()),
        ],
        'conciergeries' => [
            'array',
            'required',
            Rule::in($conciergeries_ids->all()),
        ],
    ];

    $custom_messages = [
        'required' => 'Vous devez sélectionner un(e) :attribute.'
    ];

    $validated = request()->validate($rules, $custom_messages);

Проблема в том, что мои custom_messages работают только с 'name', 'price', 'unit', 'price_type', но не с 'service', 'Facility' и 'conciergeries'.

Вопросы:

  • Как применять мои настраиваемые сообщения также с помощью 'service', 'средства' и 'conciergeries'?
  • Как создать собственное сообщение для конкретно одного поля?

Спасибо!

1 Ответ

2 голосов
/ 19 февраля 2020

Вам просто нужно указать, для какого поля вы хотите изменить сообщение

Попробуйте это так: -

$custom_messages = [
    'service.required' => 'Your custom message for required service',
    'service.string' => 'Your custom message of service should be string',];

И тот же процесс для объекта и консьержей.

...