php - 拉拉维尔 5.6。路由模型绑定
问题描述
您好我正在尝试创建自己的 laravel 包它有两个控制器资源,它们有单个控制器和模型Post
Route::resource('posts', \vendor\package\Controllers\PostsController::class);
Route::resource('categories', \vendor\package\Controllers\PostsController::class);
我的方法PostsController
是show(Post $post)
如果我打开链接http://localhost/posts/1,方法中的 attributes 元素$post
不为空show
。
但是当我打开链接http://localhost/categories/1时,属性元素$post
为空。
如何获取 Post 数据resource
categories
?
帖子和类别之间的 PS 差异是post_type
数据库中列的值。
解决方案
您可以定义在使用资源路由时为生成的路由命名的路由参数。
这应该是您需要进行的唯一更改:
Route::resource(
'categories',
\vendor\package\Controllers\PostsController::class,
['parameters' => ['categories' => 'post']]
);
现在路由参数是post
:
GET categories/{post}
GET categories/{post}/edit
...
推荐阅读
- laravel - Laravel - 我需要在哪里放置我的 sum()
- python - 无法在python中导入破折号
- javascript - 尝试使用 highcharts.js 在分组箱形图上叠加散点图
- python - Tensorflow 和 Celeron G1840 WIn 10 安装
- r - 在 R 中创建函数以进行子集化并运行 AUDPC 分析
- conda - Conda 后链接脚本不运行
- java - Java:“If”语句中 AND 之后的 OR 运算符
- wordpress - 如何在标准分页中隐藏删除下一个和上一个按钮
- vba - 查找所选单元格上方的第一个非空白行
- php - 在 Woocommerce 存档页面中将“销售”徽章替换为“缺货”