Foreach inside Foreach 基于列值
Foreach inside Foreach based on column value
我有一个 sql table 知识库
id , categoryid, title
id
categoryid
title
1
1
apple
2
1
fb
3
2
google
4
2
DB
5
3
Reebok
在我的 laravel blade 中,我试图创建一个如下所示的树视图
-1
--apple
--FB
-2
--google
--DB
-3
--Reebok
我的控制器执行基本查询,returns 整个 table 到视图。到目前为止,我是 laravel 的新手,我可以得到一个基本的 table 来像
一样工作
@foreach($knowledgebase as $key => $value)
<tr>
<td>{!! $knowledgebase ->id !!}</td>
<td>{!! $knowledgebase ->title!!}</td>
<td>{!! $knowledgebase ->categoryid !!}</td>
</tr>
@endforeach
我将如何迭代 categroyid 列,显示第一个类别和所有 child 标题,然后转到下一个 categoryid。
更新
public function show($id) {
//get article
$knowledgebase = \App\Models\Knowledgebase::Where('knowledgebase_slug', request('knowledgebase_slug'))->first();
return view('knowledgebase', compact('knowledgebase'));
}
You will need to retrieve in controller the categories before ($categories)
@foreach($categories as $category)
<tr>
<td>{{ $category->id }}</td>
<td>{{ $category->title}}</td>
<td>{{ $category->categoryid }}</td>
</tr>
@endforeach
无论如何,我设法通过在我的模型中添加一个函数 children 来解决这个问题。所以在我的模型中添加了
public function children(){
return $this->hasMany('App\Models\Knowledgebase', 'categoryid');
}
在此之后,我在我的 foreach
中简单地将其称为 foreach
@foreach($categories as $category)
<li><a href="#">{{ $category->title}}</a></li>
@if($category->children)
@foreach($category->children as $child)
<ul>
<li class="pl-3"><a href="#"> {{ $child->title}} </a></li>
</ul>
@endforeach
@endif
@endforeach
我有一个 sql table 知识库
id , categoryid, title
id | categoryid | title |
---|---|---|
1 | 1 | apple |
2 | 1 | fb |
3 | 2 | |
4 | 2 | DB |
5 | 3 | Reebok |
在我的 laravel blade 中,我试图创建一个如下所示的树视图
-1
--apple
--FB
-2
--google
--DB
-3
--Reebok
我的控制器执行基本查询,returns 整个 table 到视图。到目前为止,我是 laravel 的新手,我可以得到一个基本的 table 来像
一样工作@foreach($knowledgebase as $key => $value)
<tr>
<td>{!! $knowledgebase ->id !!}</td>
<td>{!! $knowledgebase ->title!!}</td>
<td>{!! $knowledgebase ->categoryid !!}</td>
</tr>
@endforeach
我将如何迭代 categroyid 列,显示第一个类别和所有 child 标题,然后转到下一个 categoryid。
更新
public function show($id) {
//get article
$knowledgebase = \App\Models\Knowledgebase::Where('knowledgebase_slug', request('knowledgebase_slug'))->first();
return view('knowledgebase', compact('knowledgebase'));
}
You will need to retrieve in controller the categories before ($categories)
@foreach($categories as $category)
<tr>
<td>{{ $category->id }}</td>
<td>{{ $category->title}}</td>
<td>{{ $category->categoryid }}</td>
</tr>
@endforeach
无论如何,我设法通过在我的模型中添加一个函数 children 来解决这个问题。所以在我的模型中添加了
public function children(){
return $this->hasMany('App\Models\Knowledgebase', 'categoryid');
}
在此之后,我在我的 foreach
中简单地将其称为 foreach@foreach($categories as $category)
<li><a href="#">{{ $category->title}}</a></li>
@if($category->children)
@foreach($category->children as $child)
<ul>
<li class="pl-3"><a href="#"> {{ $child->title}} </a></li>
</ul>
@endforeach
@endif
@endforeach