Laravel hasMany 关系表中的行跨度和 <tr>

Posted

技术标签:

【中文标题】Laravel hasMany 关系表中的行跨度和 <tr>【英文标题】:Laravel hasMany relation in table with rowspan and <tr> 【发布时间】:2017-11-11 19:58:43 【问题描述】:

模型

/**
 * 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>

我想显示作者和他们的书,基本上是一列中的作者和另一列中的书,以在不同的行上表示,如下图所示: table with vertical rowspan

请帮我实现这个动态表

【问题讨论】:

你能详细说明一下问题吗? 【参考方案1】:

您只需为第一列添加条件即可添加行跨度并保持与您为简单行保留的方式相似的所有内容。 另外,我假设count($auth-&gt;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

我希望这会有所帮助。

【讨论】:

以上是关于Laravel hasMany 关系表中的行跨度和 <tr>的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 的 hasMany 关系中使用 groupBy

是否可以从 Laravel 中的 hasmany 关系中返回特定的索引元素?

如何从 Laravel 中的 hasMany() 关系中获取所有结果?

Laravel 关系,hasmany 和 blongstomany

在laravel 5.1单元测试中嘲笑hasMany关系

如何从没有关系laravel 8的另一个表中检索具有多行的行数据