我有两个实体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
我不明白什么是错的!
答案 0 :(得分:0)
如果我理解正确,您的AnagraficType
表单会让您选择一个城市。如果是,您应该使用entity Field Type呈现<select>
元素。
顺便说一下,你的映射是错误的:cascade
应该在双向关系的反面上定义,即City
(拥有方{{} 1}} 保存Anagraphic
属性。
答案 1 :(得分:0)
https://stackoverflow.com/a/15043485/2036211
这里解决了这个问题,你应该使用DataTransformer。