Как сделать правило пользовательской проверки для уникального массива зависимым от другого поля laravel - PullRequest
3 голосов
/ 21 марта 2019

Я работаю над Laravel 5.6.У меня есть 4 зависимых уникальных столбца, но я не знаю, как проверить эти зависимые столбцы. Вот моя миграция для ограничения уникальности:

$table->unique(array('lvl4','document_type','nature_id','type_id'),'u_coa_lvl4_asn_dnt_uk');

lvl4 - массив.

Заранее спасибо

1 Ответ

0 голосов
/ 22 марта 2019

Вы можете попробовать вручную проверить что-то вроде этого:

$data = [
    'lvl4' => 'Level 4',
    'document_type' => 'Some type',
    'nature_id' => 1,
    'type_id' => 7,
];

$validator = Validator::make($data, [
    'data.lvl4' => [
        'required',
        Rule::unique('your_table')->where(function ($query) use($data) {
            return $query->where('lvl4', $data['lvl4'])
                ->where('document_type', $data['document_type'])
                ->where('nature_id', $data['nature_id'])
                ->where('type_id', $data['type_id']);
        }),
    ],
]);

if($validator->fails()) {
    // it fails validation ...
}

Это не проверено, но что-то вроде этого должно работать для вас.

https://laravel.com/docs/5.6/validation#rule-unique

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