0

我正在使用 CAdvancedArBehavior 在我的 Yii 应用程序中保存 MANY_MANY 关系。我正在使用启用了“multiple”="multiple" 的列表框来选择相关对象,其 ID 作为值传递。出于某种原因,当我尝试保存我的模型时,相关对象并没有被保存,但其他一切都被保存了。

我已经使用 print_r 打印出我的 POST 数据以检查所有内容是否都通过了,而且似乎是这样。我什至可以在 yiic shell 中加载我的对象并添加相同的 MANY_MANY 对象 ID 数组并正确保存它。

我需要启用什么才能正常使用此扩展程序吗?我想知道 yiic shell 是否会自动加载需要在主应用程序中进行某种手动操作的扩展?

顺便说一句,我的表单是使用 CActiveForm 小部件创建的,所以我的字段肯定都与对象的属性相匹配。

4

1 回答 1

0

基本上,当通过 CActiveForm 发送关联模型时,即使表单将其作为字段接受,当您将 $_POST['Model'] 分配给 $model->attributes 时,它也不包括关联模型(显然,当我认为关于它,我猜)。

基本上,这条额外的行是保存相关模型所必需的:

$model->relation_name = $_POST['Model']['relation_name'];

在 $model->save() 之前,一切正常。

于 2012-02-14T22:21:47.733 回答