Где есть отношения полиморф c - PullRequest
1 голос
/ 07 апреля 2020

У меня есть следующая таблица:

table logs
| id | loggable_id | loggable_type | action |

loggable_type может быть Contract, User или Card Мне нужно получить ВСЕ записи из таблицы logs, но мне нужно запустить whereHas для каждого из loggable_types, что-то вроде этого:

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

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

Но я не уверен, как определить каждое из этих отношений. Прямо сейчас у меня есть только:

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

Это Laravel 5,6, если это имеет значение.

1 Ответ

0 голосов
/ 07 апреля 2020

используйте это

Comment::whereHasMorph('loggable', [User::class, Card::class], function ($query) {
    $query->where('title', 'foo');
})->get();
...