Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengesahkan Berbilang Lajur untuk Keunikan dalam Laravel?

Bagaimana untuk Mengesahkan Berbilang Lajur untuk Keunikan dalam Laravel?

Linda Hamilton
Linda Hamiltonasal
2024-10-31 10:10:02293semak imbas

How to Validate Multiple Columns for Uniqueness in Laravel?

Mengesahkan Berbilang Lajur untuk Keunikan dalam Laravel

Sistem pengesahan Laravel menyediakan cara yang mudah untuk memastikan data yang diserahkan kepada aplikasi anda memenuhi kriteria tertentu . Satu keperluan biasa ialah memastikan lajur tertentu mengandungi nilai unik. Ini amat berguna apabila berurusan dengan jadual yang menyimpan data seperti akaun pengguna atau penyenaraian produk.

Dalam kes anda, anda mempunyai jadual yang dipanggil pelayan dengan dua lajur, ip dan nama hos. Anda ingin memastikan bahawa gabungan ip dan nama hos adalah unik. Untuk mencapai ini, anda boleh menggunakan Peraturan Laravel::peraturan unik.

Contoh berikut menunjukkan cara melaksanakan peraturan pengesahan:

<code class="php">use Illuminate\Validation\Rule;

$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>

Peraturan pengesahan ini akan menyemak sama ada gabungan dengan syarat ip dan nama hos sudah wujud dalam jadual pelayan. Jika ya, pengesahan akan gagal dan mesej ralat akan dihasilkan.

Dengan menyesuaikan penutupan tempat, anda boleh memperhalusi semakan keunikan lagi. Sebagai contoh, anda boleh mengecualikan rekod semasa yang dikemas kini dengan menggunakan sifat $this->id:

<code class="php">Rule::unique('servers')
    ->where(function ($query) use ($ip, $hostname) {
        return $query->where('ip', $ip)
            ->where('hostname', $hostname)
            ->where('id', '!=', $this->id);
    }),</code>

Pengubahsuaian ini memastikan bahawa pengesahan hanya akan mempertimbangkan rekod lain dalam jadual dan bukan rekod semasa .

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Berbilang Lajur untuk Keunikan dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn