Heim > Backend-Entwicklung > PHP-Tutorial > Wie definiere ich zusammengesetzte Primärschlüssel in Laravel 5-Modellen?

Wie definiere ich zusammengesetzte Primärschlüssel in Laravel 5-Modellen?

DDD
Freigeben: 2024-12-03 20:40:12
Original
797 Leute haben es durchsucht

How to Define Composite Primary Keys in Laravel 5 Models?

Zusammengesetzte Primärschlüssel in Laravel 5-Modellen definieren

Sie haben eine Tabelle mit zwei Primärschlüsseln (id und language_id) und möchten diese einschließen in Ihren Laravel 5-Modellen. Standardmäßig ist der Primärschlüssel in Laravel-Modellen „id“, aber Sie benötigen Ihre Primärschlüssel „id“ und „id_sprache“.

Um dies zu erreichen, können Sie ein PHP-Merkmal verwenden, das sich an Eloquent anpasst Behandeln Sie zusammengesetzte Schlüssel:

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

use Illuminate\Database\Eloquent\Builder;

trait HasCompositePrimaryKey
{
    // ... (Code from provided answer)
}
Nach dem Login kopieren

Platzieren Sie dieses Merkmal in einem „Traits“-Verzeichnis unter Ihrem Hauptmodellverzeichnis. Fügen Sie dann die folgende Zeile am Anfang eines beliebigen zusammengesetzten Schlüsselmodells hinzu:

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

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

    // ...
}
Nach dem Login kopieren

Zusätzliche Hinweise:

  • Für Laravel-Versionen 5.7 und höher: Sie müssen die getIncrementing-Methode nicht in Ihrem Merkmal definieren.
  • Wenn Sie Probleme mit Model::find haben, können Sie hinzufügen die in der Antwort bereitgestellte Suchmethode.
  • Um zusammengesetzte Schlüssel in Verbindung mit der Soft-Deleting-Funktion von Eloquent zu verwenden, müssen Sie die Methoden deleteAt und withTrashed definieren.

Das obige ist der detaillierte Inhalt vonWie definiere ich zusammengesetzte Primärschlüssel in Laravel 5-Modellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage