我正在尝试列出数据库中的文章,然后在用户点击它时显示该文章的详细信息。 如何将文章ID或名称传递给路径/控制器以显示详细信息?我尝试在href中输入id,但我不知道如何从路由中处理它!
这是文章列表:
@foreach ($articles as $article)
<div class="panel-body">
<a href="#">{{$article->name}}</a>
</div>
@endforeach
我从哪里开始?
答案 0 :(得分:1)
如果您想使用route()
,您可以在第二个参数
@foreach ($articles as $article)
<div class="panel-body">
<a href="{{ route('article.show', [$article->id]) }}">{{ $article->name }}</a>
^^^ or whatever is the name of your route
</div>
@endforeach
当然,这假设您在app\Http\routes.php
中定义了路线。例如
Route::get('/articles/{id}', ['as' => 'article.show', 'uses' => 'ArticleController@show']);
或者您可以使用url()
@foreach ($articles as $article)
<div class="panel-body">
<a href="{{ url('/articles', [$article->id] }}">{{ $article->name }}</a>
</div>
@endforeach
答案 1 :(得分:1)
用于列出所有文章的View文件:
@foreach ($articles as $article)
<div class="panel-body">
<a href="/article/{{ $article->id }}">{{$article->name}}</a>
</div>
@endforeach
<强> routes.php文件强>
Route::get('/article/{id}', 'ArticlesController@show');
<强> ArticlesController.php 强>
/**
* Show the article of the given id.
*
* @param int $id The id of the article
* @return \Illuminate\View\View
*/
public function show($id)
{
$article = Article::findOrFail($id);
return view('articles.show', compact('article'));
}
<强> show.blade.php 强>
<h3>{{ $article->name }}</h3>
<p>{{ $article->body }}</p>