Rumah >pembangunan bahagian belakang >tutorial php >Cara Mengendalikan Isu Penukaran Kunci Utama Rentetan Tersuai dalam Laravel 5.2

Cara Mengendalikan Isu Penukaran Kunci Utama Rentetan Tersuai dalam Laravel 5.2

Linda Hamilton
Linda Hamiltonasal
2024-10-19 16:53:301045semak imbas

How to Handle Custom String Primary Key Conversion Issue in Laravel 5.2

Laravel 5.2 - Kunci Utama Tersuai sebagai Rentetan: Menyelesaikan Penukaran '0'

Menggunakan rentetan sebagai kunci utama untuk jadual Eloquent boleh membawa kepada isu penukaran yang tidak dijangka. Artikel ini menangani masalah menghadapi nilai '0' semasa mengambil kunci utama.

Pernyataan Masalah:

Apabila cuba menggunakan e-mel sebagai kunci utama, Eloquent akan mengembalikan kunci utama sebagai '0' apabila menanyakan jadual menggunakan 'di mana' dengan kunci utama sebagai hujah. Ini menjejaskan pengambilan atribut lain daripada model.

Penyelesaian:

Untuk menyelesaikan isu penukaran ini, dua sifat perlu dikonfigurasikan dalam model Eloquent:

  1. naik: Tetapkan ini kepada 'palsu' untuk menunjukkan bahawa kunci utama bukan auto-naik (seperti biasa untuk kekunci rentetan).
  2. keyType (Laravel 6.0 sahaja): Tetapkan ini kepada 'rentetan' untuk menyatakan secara eksplisit bahawa kunci utama ialah rentetan.

Berikut ialah model Eloquent yang dikemas kini:

<code class="php">class UserVerification extends Model
{
    protected $primaryKey = 'verification_token';
    protected $incrementing = false;
    protected $keyType = 'string';
    // Other model definitions...
}</code>

Dengan mengkonfigurasi sifat ini, Laravel kini akan mengendalikan kunci utama rentetan dengan betul dan mengelak daripada menukarnya kepada integer, menyelesaikan isu penukaran '0'.

Atas ialah kandungan terperinci Cara Mengendalikan Isu Penukaran Kunci Utama Rentetan Tersuai 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