웹 서비스에서 게임 세션을 삭제하기 위해 다음 컨트롤러를 정의했습니다.모든 레코드가 삭제되는 이유는 무엇입니까?
하나의 세션 엔티티가 삭제 될 것으로 예상됩니다. 대신 모든 레코드가 데이터베이스에서 삭제됩니다.
SessionController.php
/**
* @Route("/{id}/")
* @Method({"DELETE"})
*/
public function deleteAction($id)
{
$repository = $this->getSessionRepository();
$session = $repository->find($id);
$em = $this->getEntityManager();
$em->remove($session);
$em->flush();
return new Response('', 200);
}
services.yml에는 다음이 포함
는sh.repository.session:
class: ScavengerWebserviceBundle\Entity\SessionRepository
factory_service: doctrine.orm.default_entity_manager
factory_method: getRepository
arguments:
- 'ScavengerWebserviceBundle:Session'
/**
* @return \Scavenger\WebserviceBundle\Entity\SessionRepository
*/
private function getSessionRepository()
{
return $this->container->get('sh.repository.session');
}
기업은 포함 : 당신이 발견 ($ 아이디)를 통해 호출
<?php
namespace Scavenger\WebserviceBundle\Entity;
use Scavenger\WebserviceBundle\Entity\Battlezone;
use Doctrine\ORM\Mapping as ORM;
use \Doctrine\ORM\Mapping\OneToOne;
use \Doctrine\ORM\Mapping\ManyToMany;
use \Doctrine\ORM\Mapping\JoinTable;
use \Doctrine\ORM\Mapping\JoinColumn;
/**
* Scavenger\WebserviceBundle\Entity\Session
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Scavenger\WebserviceBundle\Entity\SessionRepository")
*/
class Session
{
const SESSION_ACTIVE = 0; //lol
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string $name
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @var integer $mrX
*
* @ORM\Column(name="mrX", type="integer")
*/
private $mrX;
/**
* @var integer $causer
*
* @ORM\Column(name="causer", type="integer")
*/
private $causer = 0;
/**
* @var integer $statusCode
*
* @ORM\Column(name="status_code", type="integer", nullable=false)
*/
private $statusCode = self::SESSION_ACTIVE;
/**
* @ManyToMany(targetEntity="Scavenger\WebserviceBundle\Entity\User", mappedBy="sessions", cascade={"all"})
*/
private $users;
/**
* @OneToOne(targetEntity="Scavenger\WebserviceBundle\Entity\Battlezone", cascade={"all"})
* @JoinColumn(name="battlezone_id", referencedColumnName="id")
*/
private $battlezone;
/**
* @var integer
* @ORM\Column(name="start", type="integer")
*/
private $start = 0;
/**
* @var integer
* @ORM\Column(name="end", type="integer")
*/
private $end = 0;
//a bunch of setters and getters ...
}