【问题标题】:Laravel Database many:one relationLaravel 数据库多:一关系
【发布时间】:2023-04-10 17:17:01
【问题描述】:

我正在学习 laravel 并构建一个小型博客应用程序来练习。

我有一个具有以下结构的“帖子”表:

id:int AI
post:text
author:int

还有一个结构如下的 cmets 表:

id:int AI
comment:text
author:int
post:int

cmets 表中的 post 字段用于将评论链接到其帖子。

现在,为了添加评论,我将在views/posts 目录中的show.blade.php 文件中添加一个表单,并将其指向store@CommentsController 方法。视图的隐藏字段将自动填充帖子的 ID,因此我在 Comments Controlelr 中的 store 方法可能类似于:

Post::find(id)->comments->save($comment);

(我已经在模型字段中定义了表之间的关系,$comment 类似于$comment = Comment::create($comment_data_from_form))

这一切都很好,但是,我想知道 laravel 是否有更好的方法将帖子的 id 从帖子视图传递到 cmets 控制器,而不是必须指定和填充隐藏字段?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您可以使用带有帖子 ID 作为参数的路由。

    要为帖子创建新评论,您可以使用如下路径。

    http://example.org/posts/{id}/comments
    

    在你的控制器中

    public function store($postId)
    {
        $post = Post::findOrFail($postId);
        ...
        $post->comments->save($comment);
    }
    

    【讨论】:

      猜你喜欢
      • 2018-11-08
      • 2020-05-11
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      相关资源
      最近更新 更多