Пример #1
0
 /**
  * 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'));
 }