首页 > 解决方案 > Laravel 多条路由使用同一视图连接到一个控制器

问题描述

我正在尝试创建连接到一个控制器的动态路由。然后,控制器将返回相同的视图,其中包含基于不同路由的动态数据。

这是我的路线;它生成三个路由 cat/1、cat/2、cat/3。

Route::get('cat/{id}', 'PagesController@getCat')->where('id', '(1|2|3)');

控制器

public function getCat($id) 
{
    $post = Post::find($id);

    return view('Pages.cat')->withPost($post);
}

它获取$id相关的帖子数据并将它们返回给视图。

<table class="table">
    <thead>
        <th>Part</th>
        <th>Description</th>
        <th>Style</th>
        <th>Series</th>
        <th>Length</th>
        <th>Size</th>
        <th>Category</th>
    <tbody>
        <tr>
            <td>{{ $post->part }}</td>
            <td>{{ $post->description }}</td>
            <td>{{ $post->style }}</td>
            <th>{{ $post->series }}</th>
            <td>{{ $post->length }}</td>
            <td>{{ $post->size }}</td>
            <td>{{ $post->category }}</td>
        </tr>
    </tbody>
</table>

有用。但我是 Laravel 的新手,我不确定这是否是正确的做法。所以我想知道这方面的最佳做法。

标签: phplaravel

解决方案


您不需要在路线中添加带有 where 条件的 id 请将其更改为

Route::get('cat/{id}', 'PagesController@getCat');

如果你想传递可选的 id 然后

Route::get('cat/{id?}', 'PagesController@getCat');

推荐阅读