Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengelakkan Nilai Sifar Apabila Menggunakan Kekunci Utama Rentetan Tersuai dalam Model Laravel 5.2 Fasih?

Bagaimana untuk Mengelakkan Nilai Sifar Apabila Menggunakan Kekunci Utama Rentetan Tersuai dalam Model Laravel 5.2 Fasih?

Barbara Streisand
Lepaskan: 2024-11-26 11:06:13
asal
348 orang telah melayarinya

How to Avoid Zero Values When Using Custom String Primary Keys in Laravel 5.2 Eloquent Models?

Laravel 5.2: Kunci Utama Tersuai untuk Jadual Fasih - Mengelakkan Nilai Sifar

Dalam Laravel 5.2, menggunakan rentetan sebagai kunci utama tersuai untuk jadual Fasih boleh mengakibatkan tingkah laku yang tidak dijangka: nilai kunci utama menjadi sifar (0). Untuk menangani isu ini, adalah penting untuk memahami aspek khusus mekanisme pemutus atribut model Eloquent.

Secara lalai, Eloquent cuba menghantar atribut khusus kepada jenis data yang sesuai. Untuk jadual penambahan automatik, ID diandaikan sebagai integer. Walau bagaimanapun, apabila menggunakan rentetan sebagai kunci utama, penghantaran ini membawa kepada penukaran nilai kunci yang salah kepada 0.

Untuk menyelesaikan masalah ini, tiga strategi boleh digunakan:

Kaedah 1: Lumpuhkan Penambahan

Menetapkan sifat $incrementing kepada palsu dalam kelas model menunjukkan bahawa kekunci utama jadual tidak meningkat secara automatik. Ini memberitahu Eloquent supaya tidak menggunakan penghantaran integer pada kunci utama.

class UserVerification extends Model
{
    protected $primaryKey = 'verification_token';
    public $incrementing = false;
}
Salin selepas log masuk

Kaedah 2: Tentukan Kunci Penambahan

Dalam kes di mana kunci utama model ialah integer , walaupun ia bukan autoincrementing, menetapkan $incrementing kepada false mungkin tidak sesuai. Sebaliknya, nyatakan jenis data kunci utama menggunakan sifat $keyType.

class UserVerification extends Model
{
    protected $primaryKey = 'verification_token';
    protected $keyType = 'string';
}
Salin selepas log masuk

Kaedah 3: Hantar Kunci Utama Secara Eksplisit

Pendekatan alternatif adalah dengan secara eksplisit hantar kunci utama ke rentetan dalam pertanyaan Eloquent itu sendiri. Ini memastikan bahawa kunci utama dikendalikan sebagai rentetan, tanpa mengira tetapan lalai model.

UserVerification::where('verification_token', (string) $token)->first();
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Nilai Sifar Apabila Menggunakan Kekunci Utama Rentetan Tersuai dalam Model Laravel 5.2 Fasih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan