環境
Laravel 5.3.10
PHP 5.6.22
CentOS 6.8
Postgresql 9.5.3
http://codepen.io/qwe001/pen/MbYPZb
していること
都道府県をDBから取得し、それとは別のDBにあるレコードの都道府県を比較、
都道府県の文字列が一致する場合、同じ都道府県のレコードを一覧表示
したいこと
都道府県が一致する場合、なので、都道府県テーブルとアイテムテーブルは一対多の関係。
当然ながら、一つの都道府県に複数のアイテムがくっついている。
そこで、一番最初のレコードの上に見出しとして都道府県名を1つだけ表示したい。
現在の実装
同じキーが二度続いたらbreakするような記述がしたいのですが、方法が思いつかず困っています。
現在のコードは以下のとおりです。
html+php
1<table class="items"> 2 <tbody> 3 @foreach($items as $item) 4 @foreach($prefs as $pref) 5 @if($pref -> name == $item -> pref) // DB上の都道府県名($pref -> name)とアイテムの都道府県($item -> pref)が一致した時 6 // ここに何か条件分岐を入れたいです。アイテムの都道府県が重複する場合、breakする、みたいな 7 <tr class="area"><th colspan="2">{{ $pref -> name }}</th></tr> // <tr class="area"><th colspan="2">東京都</th></tr> 8 @endif 9 @endforeach 10 <tr> 11 <th><a href="{{ $item -> id }}">{{ $item -> name }}</a></th> // <th><a href="1">●●●</a></th> 12 <td>{{ $item -> pref }} {{ $item -> address }}</td> // <td>東京都 渋谷区</td> 13 </tr> 14 @endforeach 15 </tbody> 16</table>
生成されるHTMLタグは以下のサイトで公開しています。
http://codepen.io/qwe001/pen/MbYPZb
サイト上にあるように、見出しにあたる都道府県の名前は1度以上は登場させたくないので、
何かのIF文あるいはCOUNT文でforeachを1度だけ繰り返してbreakする、みたいなものを想像しているのですが、
その条件式として適切なものが思い浮かばずに困ったため、今回質問した次第です。何卒ご教授をお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/14 05:45