2017-10-28 13 views
0

私はピボットテーブルからアイテムのリストを表示するためにhtmlテーブルを持っていますが、私のアイテムは表示されません。私の項目は、この形式でHTMLテーブルにアイテムを表示する -

PatientID  Name Doctor City 

134   Joey Michael London Fredy Amsterdam 

を表示しているしかし、私はこれは、forループと私のテーブルには、どのように見えるかであることが、この形式で

PatientID  Name Doctor City 

134    Joey  Michael London 

134    Joey  Fredy Amsterdam 

を表示させたいです

<table class="table"> 
     <thead> 
      <tr> 
      <th>PatientID</th> 
      <th>Name</th> 
      <th>Doctor</th> 
      <th>City</th> 
      </tr> 

    </thead> 
    <t 

body> 
@foreach($patients as $patient) 
<tr> 
<td>{!! $patient->id !!}</td> 
<td>{!! $patient->name !!}</td> 
@foreach($patient->doctors as $doctor) 
<td>{!! $doctor->name!!}</td> 
<td>{!! $doctor->city!!}</td> 
@endforeach 
</tr> 
@endforeach 
</tbody> 
</table> 

答えて

0

これは、あなたの構造の最終的な問題です。あなたは、患者の医師あたりの行をしたいので、お互いの後に2 foreach文を使用し :

@foreach($patients as $patient) 
@foreach($patient->doctors as $doctor) 
    <tr> 
    <td>{{$patient->id}}</td> 
    <td>{{$patient->name}}</td> 
    <td>{{$doctor->name}}</td> 
    <td>{{$doctor->city}}</td> 
    </tr> 
@endforeach 
@endforeach 

ボーナス:あなたがあなたのコンテンツをアンエスケープする場合を除き、あなたは危険である({!! !!}構文は必要ありません。

+0

あなたのコンテンツをエスケープしたいのですが、私はこの部分を本当に理解できませんでした。もしあなたがさらに説明できるなら、本当に役に立つかもしれません –

+0

@ LearnProgrammingまあ、HTMLコンテンツなどをデータベースから出力したいのであれば、それをエスケープして正しくレンダリングされるようにしたいのです。さもなければ、bladeはすべてのページ上で 'htmlspecialchars'関数を実行します。これにより、あなたのページを乗っ取る可能性のある悪意のあるユーザーの入力を防ぎます。 (詳細はこちら[こちら](https://laravel.com/docs/5.5/blade#displaying-data)をご覧ください。 – manniL

関連する問題