Ничего не получая, когда делаю где-то в Laravel - PullRequest
1 голос
/ 14 марта 2019

Я пытаюсь создать функцию сортировки, где, если она выбрана, она будет отображать необходимое количество заказов.Например, если пользователь выбирает отображение заказов за последние 3 месяца, то это необходимо отобразить.

Проблема, с которой я столкнулся, заключается в том, что при I dd($three_months)

public function trackOrders()
{
    $menus_child = Menu::where('menu_id', 0)->with('menusP')->get();
    $contacts = Contact::all();

    $orders = Auth::user()->orders->sortByDesc('order_date');
    $orders->transform(function($order, $key){
                $order->cart = unserialize($order->cart);
                return $order;
            });

    $from = Carbon::now('+2:00');

    $to = $from->copy()->subMonth(3);

    $three_months = Order::whereBetween('created_at', [$from, $to])->get();

    dd($three_months);

    return view('public.users.track-orders', compact('menus_child', 'contacts', 'orders', 'order_item'));
}
ничего не отображается

но когда я делаю dd($three_months), ничего не появляется.Я только получаю

Коллекция {# 320 ▼ # элементов: []}

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

Порядок имеет значение при использовании SQL BETWEEN. Ваше значение $from больше вашего значения $to. Так что попробуйте поменять их местами:

$to = Carbon::now('+2:00');

$from = $from->copy()->subMonth(3);

$three_months = Order::whereBetween('created_at', [$from, $to])->get();
0 голосов
/ 14 марта 2019

Может быть, это потому, что вы не форматируете DateTime

   $from = Carbon::now('+2:00')->format('Y-m-d H:i:s');
   $to = $from->copy()->subMonth(3)->format('Y-m-d H:i:s');

Попробуйте этот код.

Редактировать: Вы не можете использовать метод copy() для строки. так что вы можете сделать.

  $to = Carbon::now('+2:00')->subMonth(3)->format('Y-m-d H:i:s');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...