关系或WhereDoesntHave 不起作用,如何解决?

时间:2021-07-14 14:55:54

标签: php mysql laravel

“商店”与“setting_limits”有关系。 需要选择所有设置下的所有产品。 本店可以设置销售设置,也可以不设置,则需要显示本店所有商品。

 ->whereHas('shop', function ($query) {
                        $query->whereHas('setting_limits', function ($query) {
                            $query->where(function ($q) {
                                $q->where('type', '=' ,'sell_selected_countries')
                                    ->where('county_id', '=', 4);
                            })
                                ->orWhere(function ($q) {
                                    $q->where('type', '=' , 'sale_certain_countries')
                                        ->where('county_id', '!=', 4);
                                })
                                ->orWhere(function ($q) {
                                    $q->where('type',  '=' ,'sale_certain_areas')
                                        ->where('area_id', '!=', 5);
                                })
                                ->orWhere(function ($q) {
                                    $q->where('type', '=' , 'sell_selected_areas')
                                        ->where('area_id', '=', 5);
                                });
                        })->orWhereDoesntHave('setting_limits');
                    })

我试过了,没用,她没有看到商店没有销售限制的产品。

1 个答案:

答案 0 :(得分:2)

根据我的理解 shop 有关系 setting_limits 。所以你可以做一些像下面这样的事情

class Car
{
    std::unique_ptr<IEngine> m_engine;

public:

    void TurnIgnition() { m_engine->Start(); }
};