Wpis z mikrobloga

#symfony2 #php

class tile
{
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\User", inversedBy="tiles", cascade={"remove", "persist"})
* @ORM\JoinTable(name="users_tiles")
/
protected $user;
/

* Add user
*
* @param \AppBundle\Entity\User $user
*
* @return Tile
*/
public function addUser(\AppBundle\Entity\User $user)
{
$this->user[] = $user;

return $this;
}

/**
* Remove user
*
* @param \AppBundle\Entity\User $user
*/
public function removeUser(\AppBundle\Entity\User $user)
{
$this->user->removeElement($user);
}

/**
* Get user
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getUser()
{
return $this->user;
}
}

class user
{
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Tile", mappedBy="user")
*/
protected $tiles;

/**
* Add tile
*
* @param \AppBundle\Entity\Tile $tile
*
* @return User
*/
public function addTile(\AppBundle\Entity\Tile $tile)
{
$this->tiles[] = $tile;

return $this;
}

/**
* Remove tile
*
* @param \AppBundle\Entity\Tile $tile
*/
public function removeTile(\AppBundle\Entity\Tile $tile)
{
$this->tiles->removeElement($tile);
}

/**
* Get tiles
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getTiles()
{
return $this->tiles;
}
}

klasa kontrolera

$user = $this->getUser();

foreach($user->getTiles() as $tile) {
echo $tile->getName();
$user->removeTile($tile);
}
$em->persist($user);
$em->flush();

czemu nie działa usuwanie obiektów z encji Tile?
  • 4
@slave89: w Tile mam tylko AddUser/removeUser albo getUser - to jest many to many.

wielu userow moze miec wiele tile
i wiele tile moze miec wiele userow

ex.
user 1: tile[1,1,3,4]
user 2: tile[1,3,4,1,5] itd..