Почему мои отношения возвращают результаты, но не «с учетом»?

#php #laravel

Вопрос:

У меня есть модель, которая имеет отношение к «где» и «если». Мне нужно получить все модели, в которых количество отношений > 1.

Когда я пытаюсь получить его с помощью «withCount», у меня получаются модели, у которых отношения имеют 0 к «shared_job_offers_count», когда у них должно быть 1. Однако для некоторых моделей это работает правильно.

Я заметил, что это происходит, когда «$this->issuebscribedpremium()» в «если» является истинным.

 RELATIONSHIP

    public function shared_job_offers() {
        if($this->isSubscribedPremium()) {
            return $this->hasMany('AppJobOffer')->where('disable_share', false);
        } else {
            return $this->hasMany('AppJobOffer')->where('manual_share', true);
        }
    }

RETRIEVING THE RESULTS
AppEmployer::withCount('shared_job_offers')->get()->where('shared_job_offers_count', '>', 0)
 

резюмировать:

withCount возвращает 0 для некоторых моделей, 1 для других он возвращает 0 в основном, когда «$this->issuebscribedpremium()» верно, я могу получить все правильные отношения, если просто получу его напрямую.

Есть идеи?

Комментарии:

1. @TimLewis я получаю «Столбец не найден: 1054 Неизвестный столбец «shared_job_offers_count»

2. Ах, вот оно что: AppEmployer::withCount('shared_job_offers')->has('shared_job_offers', '>', 1)->get(); . Это должно возвращать только Employer записи с shared_job_offers количеством отношений 1 или более.