示例#1
0
 /**
  * @return array
  */
 private function arrayForList()
 {
     $authorsArr = Author::select(DB::raw("CONCAT(firstname,' ', lastname) AS fullname, id"))->lists('fullname', 'id');
     $publishersArr = Publisher::all()->lists('name', 'id');
     return array($authorsArr, $publishersArr);
 }
 /**
  * Return authors's data in a way that can be read by Datatables
  *
  * @return Response
  */
 public function getDatatable()
 {
     $authors = Author::select();
     $datatables = \Datatables::of($authors)->addColumn('deleted_at', function ($author) {
         return $author->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 ($author) {
         return date('F j, Y, g:i a', strtotime($author->created_at));
     })->addColumn('updated_at', function ($author) {
         return date('F j, Y, g:i a', strtotime($author->created_at));
     })->addColumn('actions', function ($author) {
         return '<a href="' . url('admin/authors/' . $author->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('author.id', '=', $fValue);
                         break;
                     case 'name':
                     case 'slug':
                     case 'description':
                         $query->where('slug', 'LIKE', '%' . $fValue . '%');
                         break;
                     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);
 }
示例#3
0
 public function author()
 {
     if (Request::ajax()) {
         $data = Request::get('data');
         $sort = Request::get('sort');
         $list = Request::get('list');
         switch ($data) {
             case 'pp':
                 $author = Author::find($list);
                 $author_book = Book::where('author_id', $list)->get();
                 return view('front.partials.list_item_pp_author', ['data' => $author, 'author_book' => $author_book]);
             case 'word':
                 $author = Author::where('name', 'LIKE', $list . '%');
                 return view('front.partials.list_item_word', ['data' => $author->paginate(9), 'word' => $list]);
             default:
                 $authors = DB::table('Authors');
                 $author = HomeController::sort($authors, $sort);
                 return view('front.partials.list_item_all', ['data' => $author->paginate(9)]);
         }
     }
     $author_list = Author::orderBy('name', 'ASC')->paginate(9);
     $author_word = Author::select(DB::raw('substr(name,1,1) as alpha'))->groupBy(DB::raw('substr(name,1,1)'))->get();
     return view('front.tacgia', ['author_word' => $author_word, 'data' => $author_list, 'name_page' => 'Tác giả', 'table_name' => 'Authors']);
 }