Как загрузить красноречивую морфную связь с модельными условиями? - PullRequest
1 голос
/ 08 января 2020

Допустим, у нас есть следующие таблицы:

Question: id, questionable_type, questionable_id, body

Post: id, type, body

Country: id, type, continent

Почта и Страна оба сомнительны. Как мы можем загружать вопросы с их морфинговыми отношениями с отдельными условиями для модели ?

Например: Как получить вопросы с сомнительным отношением, где type = 'single' (, если сомнительная модель Сообщение ) или , где continent = 'asia' (, если сомнительной моделью является Страна )?

1 Ответ

1 голос
/ 09 января 2020

Я думаю , гдеHasMorph - это функция запроса, которая вам нужна:

$questions = App\Question::with('questionable')
    ->whereHasMorph(
    'questionable',
    ['App\Post', 'App\Country'],
    function (Builder $query, $type) {
        if ($type === 'App\Post') {
            $query->orWhere('type', 'single');
        }

        if ($type === 'App\Country') {
            $query->orWhere('continent', 'asia');
        }
    }
)->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...