获取Eloquent模型实例的主键

Bas*_*saa 22 php mysql orm laravel eloquent

我很高兴能够在MySQL数据库中使用(非)非常一致的列名来处理项目.我们有camelCase,PascalCase,'Id',ID,它让我疯狂.我决定在我们的应用程序中使用Eloquent(不是Laravel).我希望有一种方法可以在不知道列名的情况下轻松接收主键的值,例如

// User's primary key column is called UserID
$user = User::find(1337);
$userId = $user->id(); // = 1337
Run Code Online (Sandbox Code Playgroud)

有没有雄辩的方式这样做,或者我自己要添加这个方法?

Mar*_*ker 54

您应该在模型中定义一个受保护的字段,告诉Eloquent主键列是什么:

protected $primaryKey = 'guid';
Run Code Online (Sandbox Code Playgroud)

然后,您可以在模型中访问该属性

模型的getKey()方法应该为您提供主键的值,同时getKeyName()应该告诉您使用哪个列名称作为主键