doctrine - 在多对多关系表中插入记录

时间:2012-02-29 17:40:17

标签: php orm doctrine many-to-many

我有两个模型PropertyAmenity它们之间的关系是多对多的。当我想将单个记录插入一个模型时,引用类为PropertyAmenity,这对我来说很容易。

插入Property

$property = new Property();
$property->serial = 'SER09088';
$property->title = 'Some title';
$property->save();

并将记录插入Amenity中

$amenity = new Amenity();
$amenity->name = 'Swimming Pool';
$amenity->save();

我想要做的是将现有的便利设施添加到参考课程Property中保存的记录PropertyAmenity,例如。

$property = new Property();
$property->serial = 'SER09088';
$property->title = 'Some title';
$property->PropertyAmenity->amenity_id[] = 1;
$property->save();

当我尝试上面的代码时,它给了我以下异常

  

PropertyAmenity

不支持添加

情况是我从表单中收集来自用户的集体信息。例如,用户输入与Property相关的所有值,并从表单中选择现有的Multiple Amenities并提交。我需要在属性表和property_amenity表中选定的设施中保存属性,其中包含两列property_idamenity_id,如何在教义中插入此值?

1 个答案:

答案 0 :(得分:1)

在挖掘了一下之后,我自己找到了解决方案并且正如预期的那样,它很容易实现。我唯一需要改变的是。

从此

$property->PropertyAmenity->amenity_id[] = 1;

$property->PropertyAmenity[]->amenity_id = 1;
$property->PropertyAmenity[]->amenity_id = 3;
$property->PropertyAmenity[]->amenity_id = 5;

它有效,希望它可以帮助某人:)