【问题标题】:Order list not ordering by order_date订单列表未按 order_date 排序
【发布时间】:2019-03-12 09:27:44
【问题描述】:

我创建了一个页面,列出了数据库中与登录用户匹配的所有项目,我遇到的问题是我的列表不想按订单日期排序。

这是我的代码

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 不存在。

【问题讨论】:

    标签: laravel laravel-5


    【解决方案1】:

    尝试像这样添加:

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

    【讨论】:

      【解决方案2】:

      collections 上的方法返回一个新的Collection 实例并保留原始集合。因此,您需要将新的$orders 分配给旧变量,例如:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-16
        • 1970-01-01
        • 2022-01-26
        • 2016-10-03
        • 2018-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多