我有這種巴士和司機之間的多對多關係。添加方法不能在多對多的關係中工作
這是公交實體:
/**
* @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; } 這隻適用於擁有一方(巴士)。 –