php - 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 的新手,我不确定这是否是正确的做法。所以我想知道这方面的最佳做法。
解决方案
您不需要在路线中添加带有 where 条件的 id 请将其更改为
Route::get('cat/{id}', 'PagesController@getCat');
如果你想传递可选的 id 然后
Route::get('cat/{id?}', 'PagesController@getCat');
推荐阅读
- python - 为什么字典的 items 方法比直接迭代要快得多?
- javascript - 如何在 Reactjs 中的谷歌地图上嵌入一个确切的位置
- reactjs - 如何从firebase获取日期和时间
- javascript - 反应路由 - NotFound 组件在所有情况下都不会加载
- deployment - 部署前和部署后的目的是什么?
- c++ - 没有容量与大小不同的小型“向量”结构
- javascript - 有人能告诉我如何让我的本地仓库上的主分支反映远程仓库上的主分支吗?
- angular - 如何在角度创建/更新具有多对多关系的模型
- json - 如何在 yaml 文件中添加 json 条目?
- python - TabError:从模型中读取最后一个对象时,缩进中制表符和空格的使用不一致