gpt4 book ai didi

yii2 - Yii2 迁移中的多对多关系

转载 作者:行者123 更新时间:2023-12-02 20:32:58 25 4
gpt4 key购买 nike

我有 2 个表,postcomment。在 Laravel 中,我可以通过在模型中定义关系来隐式创建数据透视表 comment_post。我怎样才能在 Yii2 中做同样的事情?

表格帖子:

  id    -- PK
text

表格评论:

  id    -- PK
text
user_id

表comment_post:

  id    -- PK
post_id -- foreign key references ID on post table
comment_id -- foreign key references ID on comment table

最佳答案

假设您有一个名为“user”的表,其 pk 名为“id”

从命令行进行以下迁移:

yii migrate/create create_post_table --fields="text:text"
yii migrate/create create_comment_table --fields="text:text,user_id:integer:notNull:foreignKey(user)"
yii migrate/create create_postComment_table --fields="post_id:integer:notNull:foreignKey(post),comment_id:integer:notNull:foreignKey(comment)"

然后运行:

yii migrate

然后使用 gii为了生成事件记录类,将自动建立关系。然后,例如,您可以使用以下语法:$post->comments

有关迁移的更多信息:http://www.yiiframework.com/doc-2.0/guide-db-migrations.html

因评论而更新:

为了方便使用 $post->comments 语法,在 Post 类中您将具有如下所示的函数:

public function getComments()
{
return $this->hasMany(Comment::classname(),['id'=>'comment_id'])
->viaTable('postComment',['post_id','id']);
}

关于yii2 - Yii2 迁移中的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48093534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com