0

我有两个实体 City OneToMany Anagrafic,我以这种方式使用字段 AnagraficType city(使用隐藏属性,因为手机使用 javascript)制作表单:

class Anagrafic
{
/**
 * @ORM\ManyToOne(targetEntity="City", inversedBy="anagrafics", cascade={"persist"})
 * @ORM\JoinColumn(name="city_id", referencedColumnName="id")
 */
private $city;
//..
//..
class City
{
/**
 * @ORM\OneToMany(targetEntity="Anagrafic", mappedBy="city", cascade={"persist"})
 */
private $anagrafics;
//...
//...
class AnagraficType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('comune', 'hidden')

当我将表单保存回给我时,此错误:

Warning: spl_object_hash() expects parameter 1 to be object,
string given in /var/www/MyBusiness0_1/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php line 1559

我不明白怎么了!

4

2 回答 2

0

如果我理解正确,您的AnagraficType表格将让您选择一个城市。如果是,您应该使用实体字段类型呈现<select>元素。

顺便说一句,您的映射是错误的:cascade应该在双向关系的反面定义,即City拥有方Anagraphic拥有该inversedBy属性)。

于 2013-02-19T16:01:16.753 回答
0

https://stackoverflow.com/a/15043485/2036211

在这里解决这个问题,你应该使用DataTransformer。

于 2013-02-23T17:44:24.490 回答