コード例 #1
0
 /**
  * Return categories's data in a way that can be read by Datatables
  *
  * @return Response
  */
 public function getDatatable()
 {
     $categories = ImageCategory::select();
     $datatables = \Datatables::of($categories)->addColumn('deleted_at', function ($category) {
         return $category->deleted_at == null ? '<span class="label label-sm label-success">Active</span>' : '<span class="label label-sm label-danger">Deleted</span>';
     })->addColumn('created_at', function ($category) {
         return date('F j, Y, g:i a', strtotime($category->created_at));
     })->addColumn('updated_at', function ($category) {
         return date('F j, Y, g:i a', strtotime($category->created_at));
     })->addColumn('actions', function ($category) {
         return '<a href="' . url('admin/categories-of-images/' . $category->id . '/edit') . '" class="btn btn-success btn-sm" ><span class="glyphicon glyphicon-pencil"></span>  Edit</a>';
     });
     $filters = \Input::get('filters');
     if (!empty($filters)) {
         $datatables->filter(function ($query) use($filters) {
             foreach ($filters as $fName => $fValue) {
                 if (!$fValue) {
                     continue;
                 }
                 switch ($fName) {
                     case 'id':
                         $query->where('id', '=', $fValue);
                         break;
                     case 'name':
                     case 'created_at_from':
                         $query->where('created_at', '>=', $fValue);
                         break;
                     case 'created_at_to':
                         $query->where('created_at', '<=', $fValue);
                         break;
                     case 'updated_at_from':
                         $query->where('updated_at', '>=', $fValue);
                         break;
                     case 'updated_at_to':
                         $query->where('updated_at', '<=', $fValue);
                         break;
                     case 'deleted':
                         if ($fValue) {
                             if ($fValue == 1) {
                                 $query->whereNull('deleted_at');
                             }
                             if ($fValue == -1) {
                                 $query->where('deleted_at', '!=', 'null');
                             }
                         }
                         break;
                 }
             }
         });
     }
     return $datatables->make(true);
 }