Laravel 5.2: Isu Penukaran Kunci Utama Tersuai
Apabila menggunakan rentetan sebagai kunci utama tersuai dalam ORM Eloquent Laravel 5.2, anda mungkin menghadapi isu di mana nilai kunci ditukar kepada 0 apabila diambil daripada pangkalan data.
Penjelasan:
Laravel secara automatik menghantar nilai atribut untuk memadankan jenis lajur pangkalan data. Secara lalai, kunci utama penambahan automatik diandaikan sebagai integer. Walau bagaimanapun, dalam kes ini, anda menggunakan rentetan sebagai kunci utama, yang menyebabkan nilai ditukar dengan salah.
Penyelesaian:
Untuk menyelesaikan isu ini, anda perlu menyatakan dengan jelas bahawa kunci utama ialah rentetan dan ia tidak sepatutnya ditambah secara automatik. Untuk melakukan ini, tambahkan kod berikut pada model anda:
protected $primaryKey = 'your_key_name'; public $incrementing = false;
Pastikan anda menggantikan 'nama_kunci_anda' dengan nama sebenar lajur kunci utama anda.
Penjelasan Lanjut:
Dalam Laravel 6.0 dan lebih tinggi, anda juga perlu menetapkan sifat $keyType kepada 'rentetan':
protected $keyType = 'string';
Ini secara jelas menyatakan bahawa kunci utama ialah rentetan dan menghalang sebarang kemungkinan penukaran jenis.
Dengan melaksanakan penyelesaian ini, anda akan dapat menggunakan rentetan sebagai tersuai kunci utama dalam model Laravel Eloquent anda tanpa menghadapi isu penukaran.
Atas ialah kandungan terperinci Laravel 5.2: Mengapa Kunci Utama Rentetan saya Bertukar kepada 0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!