«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как проверить уникальность нескольких столбцов в Laravel?

Как проверить уникальность нескольких столбцов в Laravel?

Опубликовано 7 ноября 2024 г.
Просматривать:521

How to Validate Uniqueness Across Multiple Columns in Laravel?

Проверка уникальности нескольких столбцов в 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 определяет таблицу серверов, которая содержит столбцы IP и имени хоста.
  • Где Замыкание внутри правила определяет условия, которые должны быть выполнены для уникальности. В этом случае он проверяет, соответствуют ли IP-адрес и имя хоста каким-либо существующим записям в базе данных.
  • Пользовательское сообщение об ошибке «Данный IP-адрес и имя хоста не уникальны» связано с правилом проверки data.ip.unique.

Вывод

Используя правило Rule::unique с настраиваемыми условиями, вы можете эффективно обеспечить уникальность нескольких столбцов в Laravel. Этот подход позволяет проводить более конкретную и гибкую проверку данных, особенно при рассмотрении сценариев, подобных упомянутому в исходном запросе.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3