Lravel5.5 View Blade 取得した都道府県全件データから、配列で指定した市町村の名前を、カンマ区切りで表示する。

情報 PHP Laravel 記事 テクニック クエリビルダ Eloquent リレーション Laravel5.5 モデル Blade View

要件


取得した都道府県全件データから(オブジェクトをEloquentで取得する。)
配列で指定した市町村の名前を(例[13101,13102,13015])
カンマ区切りで表示する。(最後はつけない。)

やりたいこと


クエリでは全件取得してるが、viewではその一部だけが欲しい時というのがたまにある。
今回はviewでwhereInを使用してすべて解決する。(コレクションを使用する。)

ソースコード


@foreach($results["mst_prefectures"] as $k => $pref)
    @foreach($pref->mstCity->whereIn("id", $results["city_ids"]) as $key => $mst_city)
        @if (!$loop->first)
            ,
        @endif
        {{ $mst_city->name }}
    @endforeach
@endforeach

あとがき


foreachで全件をまわしてin_arrayやarray_searchなど?を使って配列に含まれてるものだけを抽出する方法もがあるが、スマートに思えていなかったので今回の方法をとることにした。
無駄がないし、$loop->first $loop->lastもつかえて便利である。

Laravelおにいさん / 2018-06-22 / 210 / 0
このエントリーをはてなブックマークに追加
関連記事

まだコメントがついていません。

ログイン不要でコメントの投稿ができます。