красноречивый фильтр множественных отношений - PullRequest
0 голосов
/ 09 июля 2020

имеют проблемы с красноречием. Есть запрос

$item = Store::select('id','name')
    ->with(['product.cart' => function ($query) use($cartWhere) {
       $query->where($cartWhere);
    }])
    ->whereHas('product.cart', function ($query) use($cartWhere) {
       $query->where($cartWhere);
    })
    ->get();

и средняя цепочка продукт от product.cart Я получаю это

select * from `products` where `products`.`store_id` in (2, 3, 4) and `products`.`deleted_at` is null

Но почему красноречивые игнорируют мой -> где есть фильтр ? Магазин с фильтрами справа, корзина с фильтрами справа, но продукт игнорирует это. как я могу получить единственный продукт, который мне нужен (есть в корзине). В таблице корзины есть внешний ключ product_id

Могу ли я сделать это через красноречие? или мне нужно использовать raw SQL и сделать это вручную?

РЕДАКТИРОВАТЬ v1: Дополнительная информация

таблица товаров имеет столбец store_id таблица корзины имеет столбец product_id , количество , site_id , user_id , id

$ cart Где переменная

$cartWhere['site_id'] =$current_site_id;
$cartWhere['user_id'] = $user_id;
...