具有多态关系

问题描述 投票:0回答:1

我有下表:

table logs
| id | loggable_id | loggable_type | action |

loggable_type可以是ContractUserCard我需要从logs表中获取所有记录,但是我必须在每个loggable_types上运行whereHas,所以类似这样:

$logs = Log::whereHas('contract', function() {

})
->whereHas('user', function() {
})
->whereHas('card', function() {
});

但是我不确定如何定义每个关系。现在我只有:

   public function loggable()
    {
        return $this->morphTo();
    }

如果重要,请使用Laravel 5.6。

laravel eloquent laravel-5.6
1个回答
0
投票

使用此

Comment::whereHasMorph('loggable', [User::class, Card::class], function ($query) {
    $query->where('title', 'foo');
})->get();
© www.soinside.com 2019 - 2024. All rights reserved.