首頁  >  文章  >  後端開發  >  如何在 Laravel 中驗證多列的唯一性?

如何在 Laravel 中驗證多列的唯一性?

DDD
DDD原創
2024-11-02 14:01:02204瀏覽

How to Validate the Uniqueness of Multiple Columns in Laravel?

在 Laravel 中驗證多個列的唯一性

在 Laravel 中,唯一驗證規則確保指定資料庫列中值的唯一性。然而,在處理多個列時,驗證它們組合的唯一性並不簡單。

考慮到這個問題,我們在伺服器表中有兩列:ip 和主機名稱。要驗證具有特定 ip 值的新記錄與現有主機名稱值一起不存在於表中,我們可以利用 Rule::unique。

以下程式碼片段示範如何實現所需的驗證:

<code class="php">$messages = [
    'data.ip.unique' => 'Given ip and hostname are not unique',
];

Validator::make($data, [
    'data.ip' => [
        'required',
        Rule::unique('servers')
            ->where(function ($query) use ($ip, $hostname) {
                return $query->where('ip', $ip)
                    ->where('hostname', $hostname);
            }),
    ],
], $messages);</code>

此驗證規則檢查伺服器表中是否已存在具有相同 ip 和主機名稱組合的記錄。如果是,則根據 $messages 中指定的自訂訊息傳回錯誤訊息。透過定義 where 閉包,我們可以指定唯一性的確切條件,確保同時考慮 ip 和主機名稱值。

以上是如何在 Laravel 中驗證多列的唯一性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn