在大多数项目中,通常会有一条路线,其中有多个参数
/posts/1/comments/1
您要确保评论1是帖子1的一部分 您可以采用多种方式。
Abort_if()或Abort_unless()
赞
abort_if($post->id != $comment->post_id, 403);
或
abort_unless($post->id == $comment->post_id, 403);
缺点是,这需要在与注释和发布交互的每个控制器功能处进行。很多重复的代码。不是很干
中间件
您可以制作一个进行此检查的中间件,并将其放置在所需的路由上。
与此相对的是,您需要将其放置在所需的每条路线上,就像中止选项一样。
路由模型绑定
这似乎是最好的选择,这是从帖子模型中进行查询的一种全局方式。
$posts->comments()->where($comment->id);
这里的缺点,如果您将“评论”绑定为始终在帖子的关系中进行搜索,那么您将永远无法做到
/comments/1
您有什么想法?似乎找不到真正的最佳实践或确定的答案。