Dalam Laravel, peraturan pengesahan unik memastikan keunikan nilai dalam lajur pangkalan data yang ditentukan. Walau bagaimanapun, apabila berurusan dengan berbilang lajur, adalah tidak mudah untuk mengesahkan keunikan gabungannya.
Memandangkan soalan itu, kami mempunyai dua lajur, ip dan nama hos, dalam jadual pelayan. Untuk mengesahkan bahawa rekod baharu dengan nilai ip tertentu belum wujud dalam jadual bersama nilai nama hos sedia ada, kami boleh menggunakan Rule::unique.
Coretan kod berikut menunjukkan cara untuk mencapai pengesahan yang diingini :
<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>
Peraturan pengesahan ini menyemak sama ada rekod dengan gabungan ip dan nama hos yang sama sudah wujud dalam jadual pelayan. Jika ya, ia mengembalikan mesej ralat mengikut mesej tersuai yang dinyatakan dalam $messages. Dengan mentakrifkan penutupan tempat, kami boleh menentukan syarat tepat untuk keunikan, memastikan kedua-dua nilai ip dan nama hos diambil kira.
Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Keunikan Berbilang Lajur dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!