public function index() { //Set keyword to proper format using Str::lower - it's the same as strtolower $keyword = Str::lower(Input::get('keyword')); //Use Query builder to look for the keyword in various category $data['comics'] = Comicbooks::where('book_name', 'LIKE', '%' . $keyword . '%')->select('book_name')->distinct()->get(); $data['characters'] = Characters::where('character_name', 'LIKE', '%' . $keyword . '%')->select('character_name')->distinct()->get(); $data['authors'] = Authors::where('author_name', 'LIKE', '%' . $keyword . '%')->select('author_name')->distinct()->get(); $data['artists'] = Artists::where('artist_name', 'LIKE', '%' . $keyword . '%')->select('artist_name')->distinct()->get(); $data['publishers'] = Publishers::where('publisher_name', 'LIKE', '%' . $keyword . '%')->select('publisher_name')->distinct()->get(); $this->layout->content = View::make('search', $data); }
/** * Update a comicbook series * PUT /content/{title} * * @param int $title * @return Response */ public function update($title) { //Set rules $rules = array('book_name' => 'required|min:1', 'publisher_name' => 'required|min:1', 'book_description' => 'max:2000', 'genres' => 'min:1', 'characters' => 'min:1'); //Validate $validator = Validator::make(Input::all(), $rules); //Instance of Comicbook model $comic = new Comicbooks(); $book_id = $comic->series($title)->select('comicdb_books.id')->first(); //If the comicbook series exists if (!is_null($book_id)) { //If validation passes if ($validator->passes()) { //Instance of Publisher model $publishers = new Publishers(); //Set variables $book_name = strtolower(Input::get('book_name')); $publisher = strtolower(Input::get('publisher_name')); //If publisher already exists, get the id of that publisher from the comicdb_publishers table $publisherExists = $publishers->where('publisher_name', $publisher)->select('id')->first(); if (isset($publisherExists->id)) { $publisher_id = $publisherExists->id; } else { $publisher_id = $publishers->insertGetId(array('publisher_name' => $publisher)); } //Update comic series $update_comic = $comic->findOrFail($book_id->id); $update_comic->book_name = $book_name; $update_comic->book_description = Input::get('book_description'); $update_comic->publisher_id_FK = $publisher_id; $update_comic->save(); //Delete then reinsert all the values because that way is easier. DB::table('comicdb_genrebook')->where('book_id_FK', $update_comic->id)->delete(); foreach (Input::get('genres') as $key => $genre) { DB::table('comicdb_genrebook')->insert(array('book_id_FK' => $update_comic->id, 'genre_id_FK' => $genre)); } //Add issue character information into the comicdb_character table and keys into the comicdb_characterbook table DB::table('comicdb_characterbook')->where('book_id_FK', $update_comic->id)->delete(); foreach (Input::get('characters') as $key => $character) { $character_id = Characters::insertGetId(array('character_name' => $character)); DB::table('comicdb_characterbook')->insert(array('book_id_FK' => $update_comic->id, 'character_id_FK' => $character_id)); } return Redirect::to('browse')->with('postMsg', 'The book has been updated!'); } else { return Redirect::to('content.series.edit')->with('postMsg', 'Whoops! Looks like you got some errors.')->withErrors($validator)->withInput(); } } else { return Redirect::to('content.series.edit')->with('postMsg', 'That book does not exist!'); } }
public function getAdmin() { //Get info $data['users'] = User::paginate(5); $data['recent_books'] = Comicbooks::select('book_name', 'updated_at')->orderBy('updated_at', 'desc')->paginate(3); $data['user_count'] = User::where('id', '>', 0)->count(); $data['publisher_count'] = Publishers::where('id', '>', 0)->count(); $data['books_count'] = Comicbooks::where('id', '>', 0)->count(); $data['issue_count'] = Comicissues::where('issue_id', '>', 0)->where('book_id', '>', 0)->count(); $data['artist_count'] = Artists::count(); $data['author_count'] = Authors::count(); $data['books_created'] = Comicbooks::select(DB::raw('count(*) as count'), 'created_at')->groupby(DB::raw('date_format(created_at, "%b %Y")'))->orderby('created_at', 'asc')->get(); $data['issues_created'] = Comicissues::select(DB::raw('count(*) as count'), 'created_at')->groupby(DB::raw('date_format(created_at, "%b %Y")'))->orderby('created_at', 'asc')->get(); //Check if there are any comicbook series if (count($data['books_created']) > 0) { //Get the count of books per the month/year then return the json encoded string foreach ($data['books_created'] as $created) { $created_books[] = $created->count; $created_books_date[] = date_format($created->created_at, "M Y"); } $data['created_books'] = json_encode($created_books); } //Check if there are any comicbook issue if (count($data['issues_created']) > 0) { //Get the count of issues per the month/year then return the json encoded string foreach ($data['issues_created'] as $created) { $created_issues[] = $created->count; $created_issues_date[] = date_format($created->created_at, "M Y"); } $data['created_issues'] = json_encode($created_issues); } //Merge dates from comicbook series and issues created then return the json encoded string $data['created_dates'] = json_encode(array_unique(array_merge($created_issues_date, $created_books_date))); $this->layout->content = View::make('admin.index', $data); }