Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menghalang Fasih daripada Menghantar Kunci Utama Rentetan kepada 0 dalam Laravel 5.2?

Bagaimana untuk Menghalang Fasih daripada Menghantar Kunci Utama Rentetan kepada 0 dalam Laravel 5.2?

Linda Hamilton
Linda Hamiltonasal
2024-12-04 00:07:14332semak imbas

How to Prevent Eloquent from Casting a String Primary Key to 0 in Laravel 5.2?

Laravel 5.2: Menggunakan Rentetan sebagai Kunci Utama Tersuai untuk Jadual Fasih

Apabila bekerja dengan model Eloquent dalam Laravel 5.2, ia mungkin untuk menghadapi isu di mana kunci utama tersuai jenis rentetan dihantar ke 0 apabila mengambil data daripada pangkalan data.

Pernyataan Masalah:
Seorang pengguna menghadapi isu ini semasa menggunakan e-mel sebagai kunci utama untuk jadual, menyebabkan nilai kunci utama menjadi 0 selepas mengambilnya menggunakan mana kaedah.

Penyelesaian:
Untuk menyelesaikan isu ini, adalah perlu untuk memaklumkan kepada Laravel bahawa kunci utama bukan integer kenaikan automatik. Ini boleh dicapai dengan menetapkan kedua-dua sifat $incrementing dan $primaryKey dalam kelas model. Selain itu, menetapkan sifat $keyType kepada 'rentetan' disyorkan dalam versi Laravel 6.0.

Berikut ialah contoh cara mengemas kini kelas model:

class UserVerification extends Model
{
    protected $primaryKey = 'verification_token';
    public $incrementing = false;
    protected $keyType = 'string';
}

Dengan membuat perubahan ini, Laravel akan menyedari bahawa kunci utama ialah rentetan dan tidak akan cuba menghantarnya sebagai integer, menyelesaikan isu di mana kunci utama menjadi 0.

Atas ialah kandungan terperinci Bagaimana untuk Menghalang Fasih daripada Menghantar Kunci Utama Rentetan kepada 0 dalam Laravel 5.2?. 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