Проверка уникальности нескольких столбцов в Laravel
При проверке данных в Laravel важно обеспечить уникальность нескольких столбцов во избежание дублирования записей. Это особенно актуально в сценариях, где несколько комбинаций значений должны быть уникальными, например, в упомянутом случае, когда необходимо учитывать уникальность столбцов IP и имени хоста.
Уникальная проверка для нескольких столбцов
Для проверки уникальности нескольких столбцов Laravel предоставляет правило Rule::unique. Это правило позволяет указать таблицу и столбцы, которые следует учитывать во время проверки.
Настраиваемое правило проверки
В данном сценарии целью является проверка поля ip с учетом столбцы IP и имени хоста. Для этого вы можете использовать настраиваемое правило, подобное следующему:
use Illuminate\Validation\Rule;
$data = [
'ip' => '192.168.0.1',
'hostname' => 'server-1',
];
$messages = [
'data.ip.unique' => 'Given ip and hostname are not unique',
];
Validator::make($data, [
'ip' => [
'required',
Rule::unique('servers')
->where(function ($query) use ($ip, $hostname) {
return $query->where('ip', $ip)->where('hostname', $hostname);
}),
],
], $messages);
if ($validator->fails()) {
// Handle validation errors...
}
Объяснение
Вывод
Используя правило Rule::unique с настраиваемыми условиями, вы можете эффективно обеспечить уникальность нескольких столбцов в Laravel. Этот подход позволяет проводить более конкретную и гибкую проверку данных, особенно при рассмотрении сценариев, подобных упомянутому в исходном запросе.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3