我很高兴能够在MySQL数据库中使用(非)非常一致的列名来处理项目。我们有camelCase,PascalCase,'Id',ID,它让我疯狂。我决定在我们的应用程序中使用Eloquent(不是Laravel)。我希望有一种方法可以在不知道列名的情况下轻松接收主键的值,例如。
// User's primary key column is called UserID
$user = User::find(1337);
$userId = $user->id(); // = 1337
有没有雄辩的方式这样做,或者我自己必须添加这个方法?
答案 0 :(得分:49)
您应该在模型中定义一个受保护字段,告诉Eloquent主键列是什么:
protected $primaryKey = 'guid';
然后您可以在模型中访问该属性
模型的getKey()
方法应该为您提供主键的值,而getKeyName()
应该告诉您使用哪个列名称作为主键