【发布时间】:2018-06-17 18:05:30
【问题描述】:
有什么方法可以在 laravel 5.* 上创建隐式绑定的类多态模型??
例如:
route('project.comment.store', $project->commentable)
像这样注册路由
Route::get('comments/{commentable}/store', ....controller . '@store')
并在控制器的 store() 方法中接收到确切的模型?
我猜我可以存档的唯一方法是如果我将路线修改为这样的东西
Route::get('comments/{commentable_type}/{commentable_id}/store', ....controller . '@store')
这看起来很丑……但是很有效……知道是否有任何更短更聪明的方法吗?
【问题讨论】:
-
为什么不通过 POST 将对象的 id 发送给方法,然后使用 Comments::find($id) 获取对象?
-
我的代码中有一个问题...如果我确实发送了 $project->id 的 id 而不是 $project->commentable->id 并且它会在我检索时工作$project->find($id)->commentable->cmets->create()..... 问题是 $project->commentable 可能会不时更改为另一个可评论对象的实例。因此 ->commentable 现在引用的对象在通过 post 方法到达控制器时可能不是同一个对象
-
拉斐尔最后做了什么?
-
这是一个非常难的问题......我确实设法让这个工作,但我没有更多关于我需要这个项目的记忆......
-
相关:[[5.6] 允许可空方法注入(多态路由模型绑定) by mpyw · Pull Request #22488 · laravel/framework](github.com/laravel/framework/pull/22488)
标签: laravel-5