如何在另一个数据库表(Laravel 5.4)中显示其关联类别下的一个数据库表中的项目?

时间:2017-08-18 19:15:00

标签: php mysql database controller laravel-5.4

我试图在我看来,在他们所属类别下面的一个数据库表中显示主题。这些类别是从另一个数据库表中提取的,但是我在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/controllershttps://laravel.com/docs/5.4/eloquent),但我仍然遇到问题。

0 个答案:

没有答案