更改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'; }