Список заказов не упорядочен по дате заказа - PullRequest
0 голосов
/ 12 марта 2019

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

Это мой код

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

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

    return view('public.users.track-orders', compact('menus_child', 'contacts', 'orders', 'order_item'));
}

Я также пытался удалить это

->sortByDesc('order_date');

и добавить это

->orderBy('order_date', 'desc');

, но затем я получил эту ошибку

Метод Illuminate \ Database \ Eloquent \ Collection :: orderBy не существует.

Ответы [ 2 ]

1 голос
/ 12 марта 2019

попробуйте добавить вот так:

$orders = Auth::user()->orders->sortByDesc('order_date');
$orders->transform(function($order, $key){
    $order->cart = unserialize($order->cart);
    return $order;
});
0 голосов
/ 12 марта 2019

Методы коллекций возвращают новый экземпляр Collection и сохраняют исходную коллекцию. Поэтому вам нужно присвоить новую $orders старой переменной, например:

$orders = $orders->transform(function($order, $key){
    $order->cart = unserialize($order->cart);
    return $order;
})->sortByDesc('order_date');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...