是的
class User extends Eloquent {
protected $primaryKey = 'admin_id';
}
如果您想使用复合键(字符串)
您需要确保设置了 public $incrementing = false
否则 laravel 会将字段转换为整数,给出 0
class User extends Model {
protected $primaryKey = 'my_string_key';
public $incrementing = false;
}
class User extends Eloquent {
protected $primarykey = 'admin_id';
}
但
class User extends Eloquent {
protected $primaryKey = 'admin_id';
}
注意变量 $primaryKey 上的字母 K(大写)
主键变量区分大小写,必须为 $primaryKey
才能工作。
例子:
protected $primaryKey = 'your_primary_key_id';
模型类中的示例:
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。
要分配主键,您应该:
class User extends Eloquent {
protected $primaryKey = 'admin_id';
}
$primarykey
应该是$primaryKey
(大写字母 K),否则将不起作用。$primaryKey = array('key1', 'key1');
github.com/laravel/framework/issues/5517#issuecomment-52996610