Как посчитать заказы на один товар? - PullRequest
0 голосов
/ 10 марта 2020

У меня есть products, orders и третья сводная таблица product_order (product_id, order_id), мне нужно посчитать заказы продукта на основе created_at

мои закрыты:

public function product_chart(Product $product)
{
        $orders = $product->whereHas('orders', function ($query)  {
                    $query->whereMonth('created_at', '04');
                })->count();
    dd($orders);
}

Выходные данные дают количество продуктов: (

конечно, у меня есть отношение в продукте, называемом (заказы), и в Заказе, называемом (продукты)

Так Мне нужно посчитать заказы продукта на основе созданного_ заказа!

1 Ответ

2 голосов
/ 10 марта 2020

Это потому, что вы рассчитываете продукты.

Вы можете просто сделать это:

$ordersCount = $product->orders()->count();

Но поскольку вы применяете некоторые условия, вам необходимо добавить предложение where:

$ordersCount = $product->orders()->whereMonth('created_at', '04')->count();

Также есть более простой способ сделать это в соответствии с Laravel Документация :

use Illuminate\Database\Eloquent\Builder;

$posts = App\Post::withCount(['votes', 'comments' => function (Builder $query) {
    $query->where('content', 'like', 'foo%');
}])->get();

echo $posts[0]->votes_count;
echo $posts[0]->comments_count;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...