我正在使用CAdvancedArBehavior在我的Yii应用程序中保存MANY_MANY关系。我正在使用一个启用了“multiple”=“multiple”的listBox来选择相关对象,其ID作为值传递。出于某种原因,当我尝试保存模型时,相关对象没有被保存,但其他一切都是。
我已经使用print_r打印出我的POST数据来检查所有内容是否正在通过,而且似乎是。我甚至可以在yiic shell中加载我的对象并添加相同的MANY_MANY对象ID数组并正确保存。
我是否需要启用正常使用此扩展程序?我想知道是否yiic shell自动加载扩展,需要在主应用程序中进行某种手动操作?
顺便说一句,我的表单是使用CActiveForm小部件创建的,所以我的字段肯定都与对象的属性匹配。
答案 0 :(得分:0)
基本上,当通过CActiveForm发送关联模型时,即使表单接受它作为字段,当您将$ _POST ['Model']分配给$ model->属性时,它也不包括关联模型(显而易见) ,当我想到它时,我想)。
基本上,这个额外的行是保存相关模型所必需的:
$model->relation_name = $_POST['Model']['relation_name'];
在$ model-> save()之前,一切正常。