Eloquentモデルの主キーを変更できますか?
たとえばadmin_id
「id」の代わりに主キーを設定したいですか?
私はモデルのテーブル名を次のように変更できることを知っています
protected $table = "admin";
主キーに似たものはありますか?
Eloquentモデルの主キーを変更できますか?
たとえばadmin_id
「id」の代わりに主キーを設定したいですか?
私はモデルのテーブル名を次のように変更できることを知っています
protected $table = "admin";
主キーに似たものはありますか?
回答:
はい
class User extends Eloquent {
protected $primaryKey = 'admin_id';
}
$primaryKey = array('key1', 'key1');
github.com
class User extends Eloquent {
protected $primarykey = 'admin_id';
}
だが
class User extends Eloquent {
protected $primaryKey = 'admin_id';
}
変数$ primaryKeyの文字K(大文字)に注意してください
複合キー(文字列)を使用する場合
あなたが設定を確認する必要がありますpublic $incrementing = false
与え、laravelは整数にフィールドをキャストしますそうでない場合は0
class User extends Model {
protected $primaryKey = 'my_string_key';
public $incrementing = false;
}
主キー変数は大文字と小文字が区別され、機能する必要があります$primaryKey
。
例:
protected $primaryKey = 'your_primary_key_id';
Modelクラス内の例:
class User extends Eloquent {
protected $primaryKey = 'your_primary_key_id';
}
class User extends Eloquent {
protected $primaryKey = 'admin_id';
}
Laravelのドキュメントに従って:
Eloquentは、各テーブルにという名前の主キー列があると想定しますid
。$primaryKey
この規則を上書きするプロパティを定義できます。
さらに、Eloquentは、主キーが増加する整数値であると想定しています。つまり、デフォルトでは、主キーは自動的にintにキャストされます。非増分または非数値の主キーを使用する場合$incrementing
は、モデルのパブリックプロパティをfalseに設定する必要があります。
$primarykey
する必要があります$primaryKey
(大文字のK)と、そうでない場合は動作しません。