/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $sortBy = Input::get('sortBy'); $direction = Input::get('direction'); $limit = Input::get('limit') ? Input::get('limit') : 20; $q = Input::get('q'); /* 정렬이 있는경우 */ if ($sortBy and $direction) { /* 정렬이 있고 검색이 있는 경우 */ // $order = Order::whereHas('orderItem', function($query) use ($q){ // $query->where('product_code','LIKE',"%$q%"); // })->with('orderItem')->orderBy($sortBy,$direction)->paginate($limit); $order = Order::whereHas('orderItem', function ($query) use($q) { $query->where('order_items.product_code', 'Like', "%{$q}%"); })->with(['orderItem' => function ($query) use($sortBy, $direction) { $query->join('products', 'order_items.product_id', '=', 'products.id'); }])->orderBy($sortBy, $direction)->paginate($limit); if ($q) { // /* 정렬이 있지만 검색은 없는경우 // */ } else { //$order = Order::with('orderItem')->orderBy($sortBy, $direction)->paginate($limit); $order = Order::with(['orderItem' => function ($query) use($sortBy, $direction) { $query->leftJoin('products', 'order_items.product_id', '=', 'products.id')->get(); }])->orderBy($sortBy, $direction)->paginate($limit); } //정렬이 없는 경우 } else { /* 정렬은 없지만 검색이 있는 경우 */ if ($q) { $order = Order::whereHas('orderItem', function ($query) use($q) { $query->where('order_items.product_code', 'Like', "%{$q}%"); })->with(['orderItem' => function ($query) { $query->join('products', 'order_items.product_id', '=', 'products.id'); }])->orderBy('order_date', 'desc')->paginate($limit); //return dd($order); } else { $order = Order::with(['orderItem' => function ($query) { $query->leftJoin('products', 'order_items.product_id', '=', 'products.id')->get(); }])->orderBy('id', 'desc')->paginate($limit); } } //return dd($order); return view('order.index', compact('order')); }