Mengesahkan Keunikan pada Berbilang Lajur dalam Laravel
Apabila mengesahkan data dalam Laravel, adalah penting untuk memastikan keunikan merentas berbilang lajur untuk mengelakkan entri pendua. Ini amat relevan dalam senario di mana gabungan berbilang nilai harus unik, seperti dalam kes yang dinyatakan di mana kedua-dua lajur IP dan nama hos perlu dipertimbangkan untuk keunikan.
Pengesahan Unik pada Berbilang Lajur
Untuk mengesahkan keunikan pada berbilang lajur, Laravel menyediakan Peraturan::peraturan unik. Peraturan ini membolehkan anda menentukan jadual dan lajur untuk dipertimbangkan semasa pengesahan.
Peraturan Pengesahan Tersuai
Dalam senario yang diberikan, matlamatnya adalah untuk mengesahkan medan ip mempertimbangkan kedua-dua lajur ip dan nama hos. Untuk mencapai matlamat ini, anda boleh menggunakan peraturan tersuai seperti berikut:
<code class="php">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... }</code>
Penjelasan
Kesimpulan
Dengan menggunakan Peraturan::peraturan unik dengan syarat tersuai, anda boleh memastikan keunikan merentas berbilang lajur dalam Laravel dengan berkesan. Pendekatan ini membolehkan pengesahan data yang lebih khusus dan fleksibel, terutamanya apabila mempertimbangkan senario seperti yang dinyatakan dalam pertanyaan awal.
Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Keunikan Merentas Berbilang Lajur dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!