Php 获取雄辩模型实例的主键

Php 获取雄辩模型实例的主键,php,mysql,laravel,orm,eloquent,Php,Mysql,Laravel,Orm,Eloquent,我很高兴能够在MySQL数据库中使用(不)非常一致的列名来完成一个项目。我们有camelCase,PascalCase,Id,Id,这让我发疯。我已经决定开始在我们的应用程序中使用Eloquent(它不是Laravel)。我希望有一种方法可以在不知道列名的情况下轻松地接收主键的值 // User's primary key column is called UserID $user = User::find(1337); $userId = $user->id(); // = 1337

我很高兴能够在MySQL数据库中使用(不)非常一致的列名来完成一个项目。我们有camelCase,PascalCase,Id,Id,这让我发疯。我已经决定开始在我们的应用程序中使用Eloquent(它不是Laravel)。我希望有一种方法可以在不知道列名的情况下轻松地接收主键的值

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

是否有一种雄辩的方法可以做到这一点,或者我必须自己添加这种方法?

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

protected $primaryKey = 'guid';
然后可以在模型中访问该属性


模型的
getKey()
方法应该给你主键的值,而
getKeyName()
应该告诉你主键使用的列名是什么

你是在问这是否有说服力吗?马克说的是对的,但尽管你可以在你的所有模型中使用变异子来保持名称的一致性,比如id()(模型中的函数)