更改Eloquent中的默认主键
我可以更改Eloquent模型主键吗?
我想设置主键,例如admin_id
而不是'id'?
我知道我可以改变模型的表名
protected $table = "admin";
主键有类似的东西吗?
是
class User extends Eloquent { protected $primaryKey = 'admin_id'; }
class User extends Eloquent { protected $primarykey = 'admin_id'; }
但
class User extends Eloquent { protected $primaryKey = 'admin_id'; }
注意variables$ primaryKey上的字母K(大写)
主键variables是区分大小写的,必须是$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文档:
雄辩也会假定每个表都有一个名为id
的主键列。 你可以定义一个$primaryKey
属性来覆盖这个约定。
另外,Eloquent假定主键是一个递增的整数值,这意味着默认情况下主键会自动转换为一个int。 如果您希望使用非递增或非数字主键,则必须将模型上的public $incrementing
属性设置为false。
要分配一个主键,你应该..->
class User extends Eloquent { protected $primaryKey='admin_id'; }