YII中的多对多关系

YII中的多对多关系,yii,Yii,我正在尝试使用YII创建一个博客系统。提供了示例和教程。但是他们使用一个多值表来进行Post。有点像 帖子(Id、标题、内容、作者、标签) 在这里,标签列中有多个值(由comas分隔)。所以我创建了一个模式来避免这种情况,现在我有了这样的表 帖子(Id、标题、内容、作者) 标签(Id、名称) PostHaveTags(Post\u Id,Tag\u Id) 在规范化模式之后 我可以设法在relations()方法中建立一个关系。但我不知道如何从视图中获取输入并验证“标记”的值。有谁能帮我一下吗

我正在尝试使用YII创建一个博客系统。提供了示例和教程。但是他们使用一个多值表来进行Post。有点像

帖子(Id、标题、内容、作者、标签)

在这里,标签列中有多个值(由comas分隔)。所以我创建了一个模式来避免这种情况,现在我有了这样的表

帖子(Id、标题、内容、作者) 标签(Id、名称)

PostHaveTags(Post\u Id,Tag\u Id)

在规范化模式之后

我可以设法在relations()方法中建立一个关系。但我不知道如何从视图中获取输入并验证“标记”的值。有谁能帮我一下吗


Thanx.

您可以尝试使用javascript来允许表单动态增长,并包含零个、一个或多个标记。您可以使用在模型中进行验证。

最终我找到了解决方案。这就是我所做的

首先,我从视图中获得了适当的数据,并对它们进行了验证,定义了一些规则。然后在afterSave()方法中,我手动将收集的数据插入到相对关系中。我不知道是否有一个简单的方法。但我认为,如果是这样,YII将为我们生成代码。:)


谢谢你们的帮助。

好的。我试试这个。Thanx prevance@Snivs.Hey,我可以验证并从表单中获取值。但我仍然无法将它们添加到数据库中。有什么建议吗?嗯,这取决于你如何对待他们。通常我喜欢通过POST以数组的形式传递数据,因此通常我可以迭代$u POST['RelatedRecords'],这将包括来自动态增长表单的“序列化”信息。例如,为序列化的atributes列表中的每个项目创建相关记录。。所有这些都在控制器操作中。此外,请验证数据是否正确验证,以及数据库中是否存在“父记录”(对我来说,这是必须的)。这意味着您必须先保存父记录,然后保存所有子记录/相关记录(标记)。是的,我同意您的看法。非常感谢你。在做了一些自我测试之后,我可以找到答案。我将把它作为一个答案发布。再次感谢。