Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mentakrifkan Kunci Utama Komposit dalam Model Laravel 5?

Bagaimana untuk Mentakrifkan Kunci Utama Komposit dalam Model Laravel 5?

DDD
Lepaskan: 2024-12-03 20:40:12
asal
748 orang telah melayarinya

How to Define Composite Primary Keys in Laravel 5 Models?

Menentukan Kunci Utama Komposit dalam Model Laravel 5

Anda mempunyai jadual dengan dua kunci utama (id dan language_id) dan ingin memasukkannya dalam model Laravel 5 anda. Secara lalai, kunci utama dalam model Laravel ialah "id", tetapi anda memerlukan kunci utama anda sebagai "id" dan "id_language."

Untuk mencapainya, anda boleh menggunakan ciri PHP yang menyesuaikan Eloquent kepada mengendalikan kekunci komposit:

namespace App\Model\Traits; // Adjust this to match your model namespace!

use Illuminate\Database\Eloquent\Builder;

trait HasCompositePrimaryKey
{
    // ... (Code from provided answer)
}
Salin selepas log masuk

Letakkan sifat ini dalam direktori "Sifat" di bawah direktori model utama anda. Kemudian, tambahkan baris berikut pada bahagian atas mana-mana model kunci komposit:

class MyModel extends Eloquent {
    use Traits\HasCompositePrimaryKey; // *** THIS!!! ***

    /**
     * The primary key of the table.
     * 
     * @var string
     */
    protected $primaryKey = array('key1', 'key2');

    // ...
}
Salin selepas log masuk

Nota Tambahan:

  • Untuk Laravel versi 5.7 dan ke atas, anda tidak perlu mentakrifkan kaedah getIncrementing dalam sifat anda.
  • Jika anda menghadapi masalah dengan Model::find, anda boleh menambah kaedah cari yang disediakan dalam jawapan.
  • Untuk menggunakan kekunci komposit bersama-sama dengan fungsi pemadaman lembut Eloquent, anda perlu mentakrifkan kaedah deletedAt dan withTrashed.

Atas ialah kandungan terperinci Bagaimana untuk Mentakrifkan Kunci Utama Komposit dalam Model Laravel 5?. 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