2015-05-24 7 views
11

Name der Primärschlüsselspalte in jedem Modell in Laravel Rahmen ist id

protected $primaryKey = 'id'; 

Und ich weiß, dass ich wie diese, die Standardnamen ändern können:

protected $primaryKey = 'new_name'; 

Meine Frage ist: Was passiert, wenn ich ein zusammengesetzter Schlüssel (2 oder mehr Spalten) in der Tabelle, wie füge ich sie als $primaryKey hinzu? Und muss ich sie wirklich definieren?

+0

Mögliches Duplikat [Wie ich 5 zusammengesetzte Schlüssel in Modellen in Laravel setzen kann?] (Https://stackoverflow.com/questions/31415213/how-i-can-put-composite-keys-in- models-in-laravel-5) – mopo922

Antwort

6

Vom Laravel docs:

$table->primary(array('first', 'last')); 

Edit: falsch verstanden habe ich die Frage. Dieser Thread könnte einige Antworten geben: http://forumsarchive.laravel.io/viewtopic.php?pid=34475

Speziell überschreiben die find() Methode.

public static function find($primaryOne, $PrimaryTwo) { 
    return Widget::where('primaryOne', '=', $primaryOne) 
     ->where('PrimaryTwo', '=', $PrimaryTwo) 
     ->first(); 
} 
+0

'$ table-> primary (Array ('first', 'last'))' normalerweise in der Migrationsdatei beim Erstellen der Tabelle verwendet, ich frage nach 'protected $ primaryKey =' ID'', die in der zugehörigen Modelldatei existiert. – Amr

+1

Ich bin ein bisschen über meinen Kopf hier, aber es sieht nicht wie Laravel das standardmäßig unterstützt. –

+0

Wo gibt es diese Methode zum Überschreiben? In meiner Modellklasse gibt es keine solche Methode zum Überschreiben. –