Может и не может загрузить связанный запрос - PullRequest
0 голосов
/ 02 мая 2018

Я сейчас дергаю себя за волосы, я не могу понять, в чем проблема.

Это мои настройки:

Score модель hasMany теги с помощью запроса, который выглядит следующим образом:

class Score extends Model
{
    .....
    public function tags()
    {
        return $this->hasMany('App\ScoreTag', 'score_id')
         ->leftJoin('tags', 'score_tags.tag_id', '=', 'tags.tag_id')
         ->select('tags.*');          
    } 
}

Я использую пакет https://github.com/esbenp/bruno для загрузки отношения через URL-адрес API. При звонке с клиента с помощью http://mockupurl/scores?includes[]=tags все работает отлично, теги включены и извлекаются вместе с результатами. Но когда я пытаюсь использовать ...

Score::with('tags')->get();

... в бэкэнде теги не выбираются. У меня есть аналогичная установка в другом проекте, который работает нормально.

результаты показаны без тегов, как показано ниже:

"tags": []

В настоящее время я использую laravel 5.4 и спрашиваю, не хватает ли чего-то, чтобы загрузить соответствующий запрос?

1 Ответ

0 голосов
/ 03 мая 2018

Судя по вашему запросу, похоже, что вы хотите выбрать все модели тегов, которые есть у модели Score в модели ScoreTag. Выполнение объединения и пользовательского выбора внутри определения отношений не будет работать таким образом.

Для достижения этой функциональности вам, возможно, лучше воспользоваться отношением hasManyThrough .

function tags()
{
    return $this->hasManyThrough(Tag::class, ScoreTag::class);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...