首页 > 解决方案 > 为什么我的关系返回结果而不是“withCount”?

问题描述

我有一个模型,它与“where”和“if”有关系。我需要检索关系计数大于 1 的所有模型。

当我尝试使用“withCount”获取它时,我最终得到的模型与“shared_job_offers_count”的关系应该为 1。但是,它适用于某些模型。

我注意到当“if”中的“$this->isSubscribedPremium()”为真时会发生这种情况。

RELATIONSHIP

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

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

回顾:

withCount 对某些模型返回 0,对其他模型返回 1 它主要在“$this->isSubscribedPremium()”为真时返回 0,如果我直接检索它,我可以获得所有正确的关系。

任何想法?

标签: phplaravel

解决方案


推荐阅读