我有一个包含以下列的模型:
blog_id + date
上的唯一键每当我试图通过使用
来获取此表的结果时$model = BlogCounter::findOrNew(2,'2016-09-25');
或
$model = BlogCounter::whereBlogId(2)->whereDate('date','=','2016-09-25')->first()
我收到错误:
列blog_counter.id不存在
我试图覆盖primaryKey并将其设置为 null / [' blog_id',' date'] /' blog_id,date' 以上都没有解决Eloquent尝试通过id获取raw的问题。
我在这张桌子上没有主键,因为我使用的是唯一键。
我错过了什么吗?如何在没有主键的情况下强制执行Eloquent模型?
BTY,我现在正在使用PostgreSQL 9.5。
谢谢!
答案 0 :(得分:0)
Eloquent假设您的表中有一个标识行的 id 列。在您的情况下,此列名为 blog_id ,因此您需要让Eloquent知道。
您可以通过在模型中定义 primaryKey 属性来实现。它不需要是数据库中的主键,只要它可以用于获取单个记录:
class BlogCounter extends Model {
protected $primaryKey = 'blog_id';
}