Rumah > rangka kerja php > Laravel > teks badan

laravel menggesa bahawa tiada kunci utama

PHPz
Lepaskan: 2023-05-21 10:26:06
asal
762 orang telah melayarinya

Apabila menggunakan Laravel untuk operasi pangkalan data, anda kadangkala menghadapi masalah biasa: tiada kunci utama. Ini kerana dalam model lalai Laravel, kunci utama secara automatik diandaikan sebagai id Jika tiada medan id dalam pangkalan data atau medan tidak ditetapkan sebagai kunci utama, ralat tanpa kunci utama akan digesa.

Jadi, bagaimana untuk menyelesaikan masalah tiada kunci utama? Penyelesaian akan diperkenalkan dari perspektif pangkalan data dan model Laravel masing-masing.

1. Penyelesaian pangkalan data

  1. Tetapkan kunci utama

Dalam pangkalan data MySQL, anda boleh menggunakan pernyataan ALTER TABLE untuk mengubah suai struktur jadual, termasuk menetapkan kunci utama . Contoh:

ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
Salin selepas log masuk

Antaranya, nama jadual dan nama medan perlu diganti sendiri.

  1. Buat kunci utama baharu

Jika tiada medan kunci utama yang sesuai dalam pangkalan data, anda boleh menyelesaikan masalah dengan mencipta medan kunci utama baharu. Contoh:

ALTER TABLE 表名 ADD 字段名 INT AUTO_INCREMENT PRIMARY KEY;
Salin selepas log masuk

Antaranya, nama jadual dan nama medan perlu diganti sendiri. AUTO_INCREMENT menunjukkan bahawa medan meningkat secara automatik.

2. Penyelesaian model Laravel

  1. Sesuaikan kunci utama

Dalam model Laravel, anda boleh menyesuaikan kunci utama melalui atribut $primaryKey. Contoh:

class User extends Model
{
    protected $primaryKey = 'user_id';
}
Salin selepas log masuk

Di sini kunci utama ditetapkan kepada user_id.

  1. Lumpuhkan kunci utama penambahan automatik

Jika anda menggunakan kunci utama bukan penambahan automatik, anda perlu menetapkan sifat $incrementing kepada false untuk melumpuhkan auto -menambah kunci utama. Contoh:

class Product extends Model
{
    public $incrementing = false;
}
Salin selepas log masuk
  1. Tentukan nilai kunci primer secara manual

Dalam beberapa senario tertentu, anda mungkin perlu menentukan nilai kunci primer secara manual. Ini boleh dicapai dengan menetapkan sifat $keyType dan $fillable dalam model. Contoh:

class Order extends Model
{
    protected $keyType = 'string';
    protected $fillable = ['order_id', 'product_name'];
}
Salin selepas log masuk

Di sini jenis kunci utama ditetapkan kepada rentetan dan medan boleh diisi ditentukan.

Ringkasan

Melalui kaedah di atas, masalah tiada kunci utama dalam model Laravel dapat diselesaikan. Dalam pembangunan sebenar, kaedah yang sepadan boleh dipilih mengikut keperluan khusus. Pada masa yang sama, perhatian perlu diberikan untuk memastikan keunikan kunci utama untuk mengelakkan kemungkinan konflik.

Atas ialah kandungan terperinci laravel menggesa bahawa tiada kunci utama. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan