在Eloquent中更改默认主键

Vuk*_*vić 79 eloquent laravel-4

我可以更改Eloquent模型主键.

我想设置主键admin_id而不是'id'?

我知道我可以改变模型的表名

protected $table = "admin";
Run Code Online (Sandbox Code Playgroud)

主键有类似的东西吗?

phi*_*bar 169

class User extends Eloquent {

    protected $primaryKey = 'admin_id';

}
Run Code Online (Sandbox Code Playgroud)

  • 对于引用此问题的其他人,请使用其他答案之一.`$ primarykey`应该是`$ primaryKey`(大写字母K),否则将不起作用. (13认同)
  • 如果我有多个字段作为主键怎么办? (4认同)

Tob*_*lor 15

如果您想使用复合键(字符串)

你需要确保你设置public $incrementing = false否则laravel会将字段转换为整数,给出0

class User extends Model {

    protected $primaryKey = 'my_string_key';
    public $incrementing = false;

}
Run Code Online (Sandbox Code Playgroud)


小智 13

class User extends Eloquent {

    protected $primarykey = 'admin_id';

}
Run Code Online (Sandbox Code Playgroud)

class User extends Eloquent {

    protected $primaryKey = 'admin_id';

}
Run Code Online (Sandbox Code Playgroud)

注意变量$ primaryKey上的字母K(大写)


ajt*_*rds 7

主键变量区分大小写,必须$primaryKey正常工作.

例:

protected $primaryKey = 'your_primary_key_id';

Model类中的示例:

class User extends Eloquent {

    protected $primaryKey = 'your_primary_key_id';

}
Run Code Online (Sandbox Code Playgroud)