我正在学习laravel并构建一个小博客应用程序来练习。
我有一个'posts'表,其结构如下:
id:int AI
post:text
author:int
以及具有以下结构的评论表:
id:int AI
comment:text
author:int
post:int
评论表中的帖子字段用于将评论链接到其帖子。
现在,为了添加评论,我会在views / posts目录的show.blade.php
文件中添加一个表单,并将其指向store@CommentsController
metod。视图的隐藏字段将自动填充帖子的ID,以便我在评论Controlelr中的商店方法看起来像:
Post::find(id)->comments->save($comment);
(我已经定义了模型中的表之间的关系,$ comment类似于$comment = Comment::create($comment_data_from_form)
)
那就好了,但是,我想知道laravel是否有更好的方式将帖子的id从帖子视图传递给评论控制器,而不是指定和填充隐藏字段?
答案 0 :(得分:1)
您可以使用以post id作为参数的路线。
要为帖子创建新评论,您可以使用以下路线。
http://example.org/posts/{id}/comments
并在您的控制器中
public function store($postId)
{
$post = Post::findOrFail($postId);
...
$post->comments->save($comment);
}