2017-06-09 11 views
1

モデルLaravel hasManyの関係と<tr>

/** 
* Get the author 
*/ 
public function author() 
{ 
    return $this->belongsTo('App\Models\Author'); 
} 

/** 
* Get the author books 
*/ 
public function book() 
{ 
    return $this->belongsTo('App\Models\Book'); 
} 

コントローラ

public function getAuthorBook(){ 
    $authors = Author::with('book')->get(); 
    return view('user.author', compact('authors'); 
} 

<table> 
    <thead> 
     <tr> 
     <th class="text-center">Author</th> 
     <th class="text-center">book tilte</th> 
     <th class="text-center">Description</th> 
     </tr> 
    </thead> 
    <tbody> 
    @foreach($authors as $auth) 
     <tr> 
     <td rowspan="{{count($auth->book)+1}}"> 
      {{$auth->name}} 
     </td> 
      <td> 
      @foreach($auth->book as $book) 
      <tr> 
       {{$book->libelle}} 
      </tr> 
      @endforeach 
      <td> 

      <td> 
      @foreach($auth->book as $book) 
      <tr> 
       {{$book->description}} 
      </tr> 
      @endforeach 
      <td> 
     </tr> 
    @endforeach 
    </tbody> 
</table> 

私は基本的に別の1列目の著者とその本には、以下の画像のように別のラインで表現するために、帳簿と作者を表示したいと思います: table with vertical rowspan

この動的テーブル

を達成するために私を助けてください
+0

あなたは少し質問を詳しく説明できますか? – avisheks

答えて

0

rowspanを追加するための最初の列の条件を追加するだけです&単純な行を維持する方法と同じようにすべてを維持します。 また、{{count($auth->book)}}が行スパンを追加すると仮定します。しかし、私はなぜあなたが1にカウントを追加したか分かりません。

@foreach($authors as $auth) 
    @php ($first = true) 
    @foreach($auth->book as $book) 
     <tr> 
     @if($first == true) 
      <td rowspan="{{count($auth->book)}}"> 
       {{$auth->name}} 
      <td> 
      @php ($first = false) 
     @endif 
     </td> 
     <td> 
      {{$book->libelle}} 
     </td> 
     <td> 
      {{$book->description}} 
     </td> 
     </tr> 
    @endforeach 
@endforeach 

これが役立ちます。