コード例 #1
0
 public function get($zip = null, $ken_furi = null, $city_furi = null, $town_furi = null)
 {
     $addr = new Models\Address();
     /** @var \Illuminate\Database\Query\Builder $q */
     $q = $addr->newQuery();
     $decoded_zip = Models\Address::processZip($zip);
     $q->orWhere('zip', '=', $decoded_zip);
     foreach (['ken_furi', 'city_furi', 'town_furi'] as $col) {
         Models\Address::filterQueryFuri(${$col}, $q, $col);
     }
     /** @var \Illuminate\Database\Eloquent\Collection|static[] $results */
     $columns = ['ken_id', 'zip', 'ken_name', 'ken_furi', 'city_name', 'city_furi', 'town_name', 'town_furi', 'kyoto_street', 'block_name', 'office_name', 'office_address'];
     $results = $q->take(10)->get($columns);
     // NULLのフィールドを省略
     $resultsArray = array_map(function ($result) use($columns) {
         foreach ($columns as $col) {
             if (array_key_exists($col, $result) && ($result[$col] === 'NULL' || trim(mb_convert_kana($result[$col], 's')) === '')) {
                 unset($result[$col]);
             }
         }
         return $result;
     }, $results->toArray());
     $date = date('Y/m/d H:i:s');
     return $results->count() > 0 ? response()->json(['error' => 'success', 'date' => $date, 'count' => $results->count(), 'results' => $resultsArray]) : response()->json(['error' => 'error', 'date' => $date, 'count' => 0]);
 }
コード例 #2
0
 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]);
 }