我有这种巴士和司机之间的多对多关系。添加方法不能在多对多的关系中工作
这是公交实体:
/**
* @var ArrayCollection<Driver> The driver of this bus.
* @ORM\ManyToMany(targetEntity="Driver", inversedBy="bus" , cascade={"persist"})
* @ORM\JoinTable(name="bus_driver")
* @ORM\JoinColumn(name="driver_id", referencedColumnName="id")
* */
private $driver;
public function __construct() {
$this->driver = new \Doctrine\Common\Collections\ArrayCollection();
}
public function addDriver($driver) {
$this->driver[] = $driver;
return $this;
}
这是驱动程序实体:
/**
* @var ArrayCollection<Bus> The buses of this driver
* @ORM\ManyToMany(targetEntity="Bus", mappedBy="driver")
* @ORM\JoinTable(name="bus_driver")
* @ORM\JoinColumn(name="bus_id", referencedColumnName="id")
*/
private $bus;
public function __construct() {
$this->bus = new \Doctrine\Common\Collections\ArrayCollection();
}
public function addBus($bus) {
$this->bus[] = $bus;
$bus->addDriver($this);
return $this;
}
我的问题是,当我加总线驱动的关系依然存在,但不是当我加了一辆公共汽车的司机。它只能从公共汽车一侧运行。
要完成这个答案,如果你使用ArrayCollection,使用'add()'方法将一个元素添加到一个集合 – ceadreak
我试过了,但仍然无法正常工作,addSomthings方法没有被post操作触发。 工作的唯一的东西是: 公共功能setDrivers($ driver){ $ this-> driver = $ driver; return $ this; } 这只适用于拥有一方(巴士)。 –