/** * @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); }
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']); }