と の 2 つのクラスで作業しようとしていActivity
ますMandate
。AMandate
はActivity
(だから子供です)
委任の ID のリンクをクリックして、委任を消去したいと考えています。
だからここに私の行動があります:
public function eraseAction($id = null)
{
$em = $this->container->get('doctrine')->getEntityManager();
if (isset($id))
{
// existing user edition : let's load its data
$mandate = $em->find('MyAppToolsBundle:Activity', $id);
if (!$mandate)
{
$message = 'Error while deleting the record';
}
else
{
$mandate->setErase(true);
}
}
else
{
$message = 'erreur';
}
return $this->container->get('templating')->renderResponse('MyAppToolsBundle:Admin:mandate.html.twig',array(
'message' => $message));
}
私の問題は、彼の親アクティビティでのみ委任を検索できることです (委任に属性 ID がないため)。しかし、メソッド setErase は委任専用であるため、エラーが発生します..
Activity を探して委任を検索する必要がありますが、委任クラスで作成したメソッドしか使用できません。
これが私のクラスのアクティビティです:
<?php
namespace MyApp\ToolsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity
*/
class Activity
{
/**
* @ORM\GeneratedValue
* @ORM\Id
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="MyApp\ToolsBundle\Entity\Hour", mappedBy="activity")
*/
protected $hour;
/**
* @ORM\Column(type="string",length="255")
* @Assert\NotBlank()
* @Assert\MinLength(2)
*/
private $name;
/**
* @ORM\Column(type="string",length="20")
* @Assert\NotBlank()
*/
private $color;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
*/
public function setName($name)
{
$this->name = $name;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set color
*
* @param string $color
*/
public function setColor($color)
{
$this->color = $color;
}
/**
* Get color
*
* @return string
*/
public function getColor()
{
return $this->color;
}
public function __construct()
{
$this->hours = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Add hours
*
* @param Furter\OutilGestionBundle\Entity\Hour $hours
*/
public function addHour(\MyApp\ToolsBundle\Entity\Hour $hours)
{
$this->hours[] = $hours;
}
/**
* Get hours
*
* @return Doctrine\Common\Collections\Collection
*/
public function getHours()
{
return $this->hours;
}
/**
* Get hour
*
* @return Doctrine\Common\Collections\Collection
*/
public function getHour()
{
return $this->hour;
}
}
そして私のマンデートクラス:
<?php
namespace MyApp\ToolsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity
*/
class Mandate extends Activity
{
/**
* @ORM\Column(type="date")
*/
private $startdate;
/**
* @ORM\Column(type="date")
*/
private $enddate;
/**
* @ORM\Column(type="boolean")
*/
private $erase = 0;
/**
* @ORM\OneToMany(targetEntity="MyApp\ToolsBundle\Entity\Hour", mappedBy="activity")
*/
protected $hour;
/**
* @ORM\OneToOne(targetEntity="MyApp\ToolsBundle\Entity\Client")
*/
private $client;
/**
* Set startdate
*
* @param date $startdate
*/
public function setStartdate($startdate)
{
$this->startdate = $startdate;
}
/**
* Get startdate
*
* @return date
*/
public function getStartdate()
{
return $this->startdate;
}
/**
* Set enddate
*
* @param date $enddate
*/
public function setEnddate($enddate)
{
$this->enddate = $enddate;
}
/**
* Get enddate
*
* @return date
*/
public function getEnddate()
{
return $this->enddate;
}
/**
* @var MyApp\ToolsBundle\Entity\Hour
*/
private $hours;
public function __construct()
{
$this->hours = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Add hours
*
* @param MyApp\ToolsBundle\Entity\Hour $hours
*/
public function addHour(\MyApp\ToolsBundle\Entity\Hour $hours)
{
$this->hours[] = $hours;
}
/**
* Get hours
*
* @return Doctrine\Common\Collections\Collection
*/
public function getHours()
{
return $this->hours;
}
/**
* Get hour
*
* @return Doctrine\Common\Collections\Collection
*/
public function getHour()
{
return $this->hour;
}
/**
* Set client
*
* @param MyApp\ToolsBundle\Entity\Client $client
*/
public function setClient(\MyApp\ToolsBundle\Entity\Client $client)
{
$this->client = $client;
}
/**
* Get client
*
* @return MyApp\ToolsBundle\Entity\Client
*/
public function getClient()
{
return $this->client;
}
/**
* Set erase
*
* @param boolean $erase
*/
public function setErase($erase)
{
$this->erase = $erase;
}
/**
* Get erase
*
* @return boolean
*/
public function getErase()
{
return $this->erase;
}
}