-1

我有一个城市添加表格:

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('name', null, array(
            'label' => 'City',
        ));
        $builder->add('country', 'genemu_jqueryautocompleter_entity', array(
            'class' => 'X\tBundle\Entity\Country',
            'property' => 'name',
            'route_name' => 'ajax_country',
            'required' => true,
            'label' => 'Country',
        ));
    }

国家是一个实体。当我提交此表单时 - S2 返回错误:cannot save because cannot convert Object to String

为此,我使用魔术方法__toString()并返回(string)$this->getId()

但我不确定 - 这是对的吗?

决定: Symfony/Doctrine:“可捕获的致命错误:类 <type> 的对象无法转换为字符串”

4

2 回答 2

1

最好的办法是为您的 Country 实体创建一个 FormType 并将其嵌入到主窗体中。请参阅How to Embed a Collection of Forms from the Cookbook 以准确解释如何执行此操作。

您尝试做的事情是可能的,但它会使事情很快变得混乱。

于 2013-03-13T12:53:35.793 回答
1

答案:Symfony/Doctrine:“可捕获的致命错误:类 <type> 的对象无法转换为字符串”

所以,我们使用下一件事:

/**
 * @var X\tBundle\Entity\Country;
 *
 * @ORM\ManyToOne(targetEntity="X\tBundle\Entity\Country")
 * @ORM\JoinColumn(name="country_id", referencedColumnName="id", nullable=false)
 */
public $country;
于 2013-03-14T07:34:00.173 回答