我直奔主题;)我在数据库中有这样一个方案:
<table name="kongres">
<column name="id" type="integer" required="true" autoIncrement="true" primaryKey="true"/>
<column name="is_actived" type="boolean" default="0"/>
<column name="is_homepage" type="boolean" default="0"/>
<column name="template" type="VARCHAR" size="50" required="true"/>
<column name="produkt" type="integer" required="true"/>
</table>
<table name="menugroup">
<column name="id" type="integer" required="true" autoIncrement="true" primaryKey="true"/>
<column name="tytul" type="varchar" size="255"/>
</table>
<table name="kongresmenugroup">
<column name="id" type="integer" required="true" autoIncrement="true" primaryKey="true"/>
<column name="kongres_id" type="integer" required="true"/>
<foreign-key foreignTable="kongres" onDelete="CASCADE">
<reference local="kongres_id"
foreign="id"/>
</foreign-key>
<column name="menugroup_id" type="integer" required="true"/>
<foreign-key foreignTable="menugroup" onDelete="CASCADE">
<reference local="menugroup_id"
foreign="id"/>
</foreign-key>
</table>
一旦正确的命令: symfony propel: build-model 和 symfony propel: build-forms 我得到了一个表单(我添加并扩展了多个选项,因为我需要在子菜单中保存比一个更多的会议)(后端) :
public function configure()
{
$this->setWidgets(array(
'id' => new sfWidgetFormInputHidden(),
'kongres_id' => new sfWidgetFormPropelChoice(array('model' => 'Kongres', 'add_empty' => false, 'expanded' => true, 'multiple' => true)),
'menugroup_id' => new sfWidgetFormPropelChoice(array('model' => 'Menugroup', 'add_empty' => false)),
));
$this->setValidators(array(
'id' => new sfValidatorPropelChoice(array('model' => 'Kongresmenugroup', 'column' => 'id', 'required' => false)),
'kongres_id' => new sfValidatorPropelChoice(array('model' => 'Kongres', 'column' => 'id','multiple' => true)),
'menugroup_id' => new sfValidatorPropelChoice(array('model' => 'Menugroup', 'column' => 'id','multiple' => true)),
));
$this->widgetSchema->setNameFormat('kongresmenugroup[%s]');
$this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
}
现在我的问题是,好像我点击保存它会将数据保存到数据库,但它们不正确,它总是写入字段:例如,menugroup_id -> 1 和 kongres_id -> 1,尽管事实上国会已经选择的 ID = 21 并且 ID 菜单等于例如 3 请告诉我我做错了什么,因为我已经迷路了;/ 谢谢!
顺便提一句。对不起我的英语不好 ;)