0

我正在尝试创建一个表单 Houses 并将图像表单嵌入其中。我已经按照教程http://www.symfony-project.org/more-with-symfony/1_4/en/06-Advanced-Forms

我有以下架构:

houses:
  actAs: { Timestampable: ~ }
  columns:
    name: { type: string(255), notnull: true }
    description: { type: string(5000), notnull: true }

images:
  actAs: { Timestampable: ~ }
  columns:
    url: { type: string(255), notnull: true }
    id_house: { type: integer, notnull: true }
    relations:
    houses: { local: id_house, foreign: id, foreignAlias: HousesImg}

和代码:

//lib/form/doctrine/ImagesCollectionForm

class ImagesCollectionForm extends sfForm
{
  public function configure()
  {
    if(!$house= $this->getOption('house'))
    {
      throw new InvalidArgumentException('You must provide an house');
    }

    for ($i = 0; $i < $this->getOption('size',2); $i++)
    {
      $images = new images();
      $images->house = $house;

      $form = new imagesForm($images);
      $this->embedForm($i, $form);
    }
  }
}

//lib/form/doctrine/housesForm.class.php

public function configure()
{
  $form = new ImagesCollectionForm(null, array('house' => $this->getObject(),'size'=>2));
  $this->embedForm('images', $form);
}

字段按预期显示。但是,当我按下保存按钮时,我得到一个空白页,并且数据没有保存在数据库中。

4

1 回答 1

0

使用没有在与产品的图像关系中指定别名,因此默认情况下 symfony 查找关系名称

所以你需要改变 $images->house = $house; 到 $images->houses = $house; 或者你可以设置相关的别名

希望这会有所帮助。

于 2012-06-10T20:54:20.397 回答