我试图在我看来,在他们所属类别下面的一个数据库表中显示主题。这些类别是从另一个数据库表中提取的,但是我在Controller中加入了两个表。到目前为止,我已成功拉出类别并将它们全部显示在屏幕上。我遇到问题,要在正确的类别下显示正确的主题。现在,所有主题都显示在所有类别下。换句话说,当每个类别下面只有几个主题时,所有十个类别都有三十个主题。
以下是我的控制器的相关代码:
$topics_collect = collect();
$category_collect = collect();
$category_titles = collect();
$topics = DB::table('categories')
->join('topics', 'categories.id', '=', 'topics.category_id')
->select(
'categories.*',
'categories.title as categories_title',
'topics.*',
'topics.id as topic_id'
)->get();
$category = DB::table('categories')->get();
foreach ($category as $item) {
$category_titles->push($item);
}
foreach($topics as $topic){
$topics_collect->push($topic);
}
foreach($category as $item){
$category_collect->push($item);
}
return view('index', compact('category_titles', 'topics_collect', 'category_collect', 'category_collection', 'categories'));
这是我的查看文件(刀片):
@if (!empty($category_collect))
@foreach ($category_titles as $item)
<h3>{{ $item->title }}</h3>
<div>
<ul style="list-style-type: none;">
@if (!empty($topics_collect))
@foreach ($topics_collect as $topic)
<li><a href="/topics/{!! $topic->id !!}">{{ $topic->title }}</a></li>
@endforeach
@endif
</ul>
</div>
@endforeach
我一直在使用Laravel的文档(https://laravel.com/docs/5.4/controllers,https://laravel.com/docs/5.4/eloquent),但我仍然遇到问题。