Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengesahkan Keunikan Merentas Berbilang Lajur dalam Laravel?

Bagaimana untuk Mengesahkan Keunikan Merentas Berbilang Lajur dalam Laravel?

Linda Hamilton
Linda Hamiltonasal
2024-11-01 12:18:30880semak imbas

How to Validate Uniqueness Across Multiple Columns in Laravel?

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

  • Peraturan::peraturan unik menentukan jadual pelayan, yang mengandungi lajur ip dan nama hos.
  • Penutupan tempat dalam peraturan mentakrifkan syarat yang perlu dipenuhi untuk keunikan. Dalam kes ini, ia menyemak sama ada kedua-dua ip dan nama hos sepadan dengan mana-mana rekod sedia ada dalam pangkalan data.
  • Mesej ralat tersuai Diberi ip dan nama hos tidak unik dikaitkan dengan peraturan pengesahan data.ip.unik.

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!

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