public function get_index($painter = 'all') { $paintings = null; $painter_name = null; if ($painter == 'all') { $paintings = Painting::with('tags')->order_by('created_at')->paginate(Config::get('app.paginator_count')); $painter_name = __('application.all'); } else { $paintings = Painting::with('tags')->where('painter', 'LIKE', '%' . $painter . '%')->order_by('created_at')->paginate(Config::get('app.paginator_count')); $painter_name = $painter == 'brouwer' ? __('application.brouwer') : __('application.jacas'); } return View::make('work.index')->with('title', HtmlHelpers::name('work') . ' - ' . $painter_name)->with('nav', 'work')->with('painter', $painter_name)->with('paintings', $paintings); }
public static function search_paintings($q) { $cleaner = new Cleaner(); $cleaned_array = $cleaner->parseString($q); $stemmed_array = array_map('PorterStemmer::Stem', $cleaned_array); $paintings = Painting::with('tags')->distinct(); $paintings = $paintings->where(function ($query) use($stemmed_array) { $query->where('name', 'LIKE', '%' . array_get($stemmed_array, 0) . '%'); for ($i = 1; $i < count($stemmed_array); $i++) { $query->or_where('name', 'LIKE', '%' . array_get($stemmed_array, $i) . '%'); } }); $paintings = $paintings->or_where(function ($query) use($stemmed_array) { $query->where('dimensions', 'LIKE', '%' . array_get($stemmed_array, 0) . '%'); for ($i = 1; $i < count($stemmed_array); $i++) { $query->or_where('dimensions', 'LIKE', '%' . array_get($stemmed_array, $i) . '%'); } }); $paintings = $paintings->or_where(function ($query) use($stemmed_array) { $query->where('type', 'LIKE', '%' . array_get($stemmed_array, 0) . '%'); for ($i = 1; $i < count($stemmed_array); $i++) { $query->or_where('type', 'LIKE', '%' . array_get($stemmed_array, $i) . '%'); } }); $paintings = $paintings->or_where(function ($query) use($stemmed_array) { $query->where('painter', 'LIKE', '%' . array_get($stemmed_array, 0) . '%'); for ($i = 1; $i < count($stemmed_array); $i++) { $query->or_where('painter', 'LIKE', '%' . array_get($stemmed_array, $i) . '%'); } }); $paintings = $paintings->or_where(function ($query) use($stemmed_array) { $query->where('year', 'LIKE', '%' . array_get($stemmed_array, 0) . '%'); for ($i = 1; $i < count($stemmed_array); $i++) { $query->or_where('year', 'LIKE', '%' . array_get($stemmed_array, $i) . '%'); } }); $paintings = $paintings->or_where(function ($query) use($stemmed_array) { $query->where('comment', 'LIKE', '%' . array_get($stemmed_array, 0) . '%'); for ($i = 1; $i < count($stemmed_array); $i++) { $query->or_where('comment', 'LIKE', '%' . array_get($stemmed_array, $i) . '%'); } }); $paintings = $paintings->order_by('created_at', 'DESC'); $paintings = $paintings->paginate(Config::get('app.paginator_count')); return array(implode(' ', $cleaned_array), $paintings); }