Kann ich den Primärschlüssel des eloquenten Modells ändern?
Ich möchte zum Beispiel den Primärschlüssel admin_id
anstelle von 'id' setzen.
Ich weiß, dass ich den Tabellennamen für ein Modell wie ändern kann
protected $table = "admin";
Gibt es etwas Ähnliches für den Primärschlüssel?
$primarykey
sollte sein$primaryKey
(Großbuchstabe K) und wird sonst nicht funktionieren.$primaryKey = array('key1', 'key1');
github.com/laravel/framework/issues/5517#issuecomment-52996610aber
Beachten Sie den Buchstaben K (Großbuchstaben) in der Variablen $ primaryKey
quelle
Wenn Sie einen zusammengesetzten Schlüssel (eine Zeichenfolge) verwenden möchten
Sie müssen sicherstellen, dass Sie
public $incrementing = false
sonst festlegen , dass Laravel das Feld in eine Ganzzahl umwandelt0
quelle
Die Primärschlüsselvariable unterscheidet zwischen Groß- und Kleinschreibung und muss
$primaryKey
funktionieren.Beispiel:
protected $primaryKey = 'your_primary_key_id';
Beispiel innerhalb einer Modellklasse:
quelle
Gemäß Laravel-Dokumentation:
Eloquent geht auch davon aus, dass jede Tabelle eine Primärschlüsselspalte mit dem Namen hat
id
. Sie können eine$primaryKey
Eigenschaft definieren , um diese Konvention zu überschreiben.Darüber hinaus geht Eloquent davon aus, dass der Primärschlüssel ein inkrementierender ganzzahliger Wert ist. Dies bedeutet, dass der Primärschlüssel standardmäßig automatisch in ein int umgewandelt wird. Wenn Sie einen nicht inkrementellen oder einen nicht numerischen Primärschlüssel verwenden möchten, müssen Sie die öffentliche
$incrementing
Eigenschaft Ihres Modells auf false setzen.quelle
Um einen Primärschlüssel zuzuweisen, sollten Sie ..->
quelle