将数据从刀片传递到路由

时间:2016-03-02 03:32:12

标签: php laravel-5

我正在尝试列出数据库中的文章,然后在用户点击它时显示该文章的详细信息。 如何将文章ID或名称传递给路径/控制器以显示详细信息?我尝试在href中输入id,但我不知道如何从路由中处理它!

这是文章列表:

@foreach ($articles as $article)
    <div class="panel-body">
        <a href="#">{{$article->name}}</a>
    </div>
@endforeach

我从哪里开始?

2 个答案:

答案 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>