public function searchResult() { $searchWord = Input::get('search', ''); $maxCount = (int) Input::get('max_count', 100); $addr = new Models\Address(); /** @var \Illuminate\Database\Query\Builder $q */ $q = $addr->newQuery(); $decoded_searchWord = Models\Address::processZip($searchWord); $q->orWhere('zip', '=', $decoded_searchWord); foreach (['ken_furi', 'city_furi', 'town_furi'] as $col) { Models\Address::filterQueryFuri($searchWord, $q, $col); } foreach (['ken_name', 'city_name', 'town_name', 'kyoto_street', 'block_name'] as $col) { Models\Address::filterQueryKanji($searchWord, $q, $col); } /** @var \Illuminate\Database\Eloquent\Collection|static[] $results */ $results = $q->take($maxCount)->get(['ken_id', 'zip', 'ken_name', 'ken_furi', 'city_name', 'city_furi', 'town_name', 'town_furi', 'kyoto_street', 'block_name', 'office_name', 'office_address']); $resultCount = count($results); return view('index', ['results' => $results, 'count' => $resultCount, 'searchWord' => $searchWord, 'maxCount' => $maxCount]); }