私はフォーラムを作成しています。ユーザーがテーマをクリックすると、そのテーマに属するすべてのトピックがページに表示されます。問題は、私はこれをどのようにするのですか?Laravel foreachデータベースの問題
クリックしたそのテーマに属するトピックではなく、データベースからすべてのトピックを表示するループを作成しました。これどうやってするの?
Web.php
Route::get('/', '[email protected]')->name('home'); Route::get('/theme/{id}', '[email protected]')->name('showtheme');
ThemesController.php
私はここに必要な唯一のpublic function show($id)
{
$topics = Topic::all($);
return view('themes/topics')->with('topics', $topics);
}
だと考えているので、私は唯一のshowメソッドを示し
トピック
@extends('layouts.default')
@section('content')
<div class="container main-content">
<div class="row first-row">
<div class="col s12">
<div class="card">
<div class="card-content clearfix"><a href="" class="btn blue-grey darken-4 right">Nieuw topic</a></div>
</div>
</div>
<div class="col s12">
<div class="card">
<div class="card-content"><span class="card-title"> - Topics</span>
<div class="collection">
@foreach($topics as $topic)
<a href="" class="collection-item avatar collection-link"><img src="/uploads/avatars/{{ $topic->user->avatar }}" alt="" class="circle">
<div class="row">
<div class="col s6">
<div class="row last-row">
<div class="col s12"><span class="title">Theme - {{ $topic->topic_title }}</span>
<p>{!! str_limit($topic->topic_text, $limit = 100, $end = '...') !!}</p>
</div>
</div>
<div class="row last-row">
<div class="col s12 post-timestamp">Gepost door: {{ $topic->user->username }} op: {{ $topic->created_at }}</div>
</div>
</div>
<div class="col s2">
<h6 class="title center-align">Replies</h6>
<p class="center replies">{{ $topic->replies->count() }}</p>
</div>
<div class="col s2">
<h6 class="title center-align">Status</h6>
<div class="status-wrapper center-align"><span class="status-badge status-open">open</span></div>
</div>
<div class="col s2">
<h6 class="title center-align">Laatste reply</h6>
<p class="center-align">Naam</p>
<p class="center-align">Tijd</p>
</div>
</div>
</a>
@endforeach
</div>
</div>
</div>
</div>
<div class="col s12">
<div class="card">
<div class="card-content clearfix"><a href="" class="btn blue-grey darken-4 right">Nieuw topic</a></div>
</div>
</div>
</div>
</div>
@endsection
.blade.php私は明らかに間違って何かをやっているが、私は何を見ることができないと信じています。 ヘルプをいただければ幸いです。あらかじめありがとうございます 私はいくつかのコードが恋しい場合は、お知らせください。
私は。テーマとトピックの関係は次のとおりです。 1.テーマはユーザーに属し、多くのトピックを持っています 2.トピックはユーザーに属し、テーマに属しますがトピックには多数の返信があります。 これは私が持っている関係です。 –
その場合は、Auth :: user() - > topicsのような、ユーザーのトピックに直接アクセスして、必要なトピックを取得し、 - > with( 'topics'、Auth: :user() - > topics); – btl
それは私が意味するものではないと私は信じています。ユーザーがテーマをクリックした場合。次のページはそのテーマのすべてのトピックを表示するforeachループである必要があります。私が正しいとすれば、あなたが提供したコードはそれを行うことができるとは思わない。 –