获取Eloquent模型实例的主键

时间:2015-05-26 11:25:24

标签: 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

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

1 个答案:

答案 0 :(得分:49)

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

protected $primaryKey = 'guid';

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

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