我有下表:
table logs
| id | loggable_id | loggable_type | action |
loggable_type可以是Contract
,User
或Card
我需要从logs
表中获取所有记录,但是我必须在每个loggable_types上运行whereHas
,诸如此类:
$logs = Log::whereHas('contract', function() {
})
->whereHas('user', function() {
})
->whereHas('card', function() {
});
但是我不确定如何定义每个关系。现在我只有:
public function loggable()
{
return $this->morphTo();
}
重要的是Laravel 5.6。
答案 0 :(得分:0)
使用此
Comment::whereHasMorph('loggable', [User::class, Card::class], function ($query) {
$query->where('title', 'foo');
})->get();