sad*_*k-f 2 php symfony doctrine-orm
我在Symfony2和doctrine中有一个小项目,我正在尝试更新2个相关实体:
会员和汽车
$carMembers = $car->getMembers();
echo count($carMembers); // --> show 2
echo get_class(carMembers[0]); // --> show MyCars\WSBundle\Entity\Member
$car->removeMember($member);
$em->persist($car);
$em->flush();
$carMembers= $car->getMembers();
echo count($carMembers); // --> show 1
echo get_class(carMembers[0]); // --> show MyCars\WSBundle\CarsController !!!
Run Code Online (Sandbox Code Playgroud)
有我的实体:
汽车
/**
* @ORM\ManyToMany(targetEntity="Member", mappedBy="cars")
*/
private $members;
/**
* Remove Member
*
* @param MyCars\WSBundle\Entity\Member $member
*/
public function removeMember(\MyCars\WSBundle\Entity\Member $member)
{
$this->members->removeElement($member);
$member->removeCar($this);
}
Run Code Online (Sandbox Code Playgroud)
会员
/**
* @ORM\ManyToMany(targetEntity="Car", cascade={"persist"})
* @ORM\JoinTable(name="cars_membres",
* joinColumns={@ORM\JoinColumn(name="member_id", referencedColumnName="member_id")},
* inverseJoinColumns={@ORM\JoinColumn(name="car_id", referencedColumnName="car_id")}
* )
*/
private $cars;
Run Code Online (Sandbox Code Playgroud)
Jov*_*vic 10
我认为你要找的是orphanRemoval关系选项.
@ORM\ManyToMany(targetEntity="Car", cascade={"persist"}, orphanRemoval=true)
Run Code Online (Sandbox Code Playgroud)
因此,当您从集合中删除项目并刷新实体管理器时,它将从数据库中删除关系记录...
| 归档时间: |
|
| 查看次数: |
6295 次 |
| 最近记录: |