Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Mengesahkan Berbilang Lajur untuk Keunikan dalam 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!