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->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() 关系中获取所有结果?