symfony2에서 엔티티를 삭제하려면 어떻게해야합니까?
내 첫 번째 symfony2 프로젝트는 데이터베이스에 저장된 게스트 (이벤트에 초대 됨) 목록입니다. 나는 가지고있다
- 모든 변수 (ID, 이름, 주소, 전화 번호 등)와 함께 엔티티 클래스 Guest를 생성했습니다.
- mysql db에 스키마를 생성했습니다.
- 나뭇 가지 템플릿에 "게스트 추가"경로를 만들었습니다.
- formType 생성
마지막으로 컨트롤러의 "createGuest"메소드와 모든 것이 잘 작동합니다.
데이터베이스에서 게스트를 제거 할 수 없습니다. 나는 공식 Symfony2 책을 포함하여 웹의 모든 튜토리얼을 읽었습니다. 그것이 말하는 모든 것은 :
개체 삭제
객체 삭제는 매우 유사하지만 엔티티 관리자의 remove () 메소드를 호출해야합니다.
$em->remove($product);
$em->flush();
컨트롤러 deleteAction ($ id)을 나뭇 가지 템플릿과 연결하는 방법에 대한 자세한 내용은 ( "객체 업데이트"섹션에도 문서가 누락되어 있습니다.) 내가 원하는 것은 viewGuests 작업과 viewGuests twig 템플릿으로 모든 게스트를 나열하는 것입니다. 모든 행 옆에 삭제 아이콘이 있으며 항목을 삭제하려면 클릭해야합니다. 간단하지만 문서를 찾을 수없고 어디서부터 시작해야할지 모르겠습니다.
public function deleteGuestAction($id)
{
$em = $this->getDoctrine()->getEntityManager();
$guest = $em->getRepository('GuestBundle:Guest')->find($id);
if (!$guest) {
throw $this->createNotFoundException('No guest found for id '.$id);
}
$em->remove($guest);
$em->flush();
return $this->redirect($this->generateUrl('GuestBundle:Page:viewGuests.html.twig'));
}
Symfony는 똑똑하고 find()
스스로 만드는 방법을 알고 있습니다.
public function deleteGuestAction(Guest $guest)
{
if (!$guest) {
throw $this->createNotFoundException('No guest found');
}
$em = $this->getDoctrine()->getEntityManager();
$em->remove($guest);
$em->flush();
return $this->redirect($this->generateUrl('GuestBundle:Page:viewGuests.html.twig'));
}
컨트롤러에서 ID를 보내려면 {{ path('your_route', {'id': guest.id}) }}
DELETE FROM ... WHERE id = ...;
protected function templateRemove($id){
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('XXXBundle:Templates')->findOneBy(array('id' => $id));
if ($entity != null){
$em->remove($entity);
$em->flush();
}
}
내가 이해하는 바에 따르면 템플릿에 무엇을 넣을지 고민합니다.
예를 들어 보겠습니다.
<ul>
{% for guest in guests %}
<li>{{ guest.name }} <a href="{{ path('your_delete_route_name',{'id': guest.id}) }}">[[DELETE]]</a></li>
{% endfor %}
</ul>
Now what happens is it iterates over every object within guests (you'll have to rename this if your object collection is named otherwise!), shows the name and places the correct link. The route name might be different.
ReferenceURL : https://stackoverflow.com/questions/11809685/how-do-i-delete-an-entity-from-symfony2
'IT박스' 카테고리의 다른 글
Entity Framework 대 저장 프로 시저-성능 측정 (0) | 2020.12.25 |
---|---|
Rails 3.2 대량 할당을 통해 여러 새 항목을 제출하는 방법 (0) | 2020.12.25 |
.NET Core 2.0으로 업그레이드 : PackageTargetFallback 및 AssetTargetFallback은 함께 사용할 수 없습니다. (0) | 2020.12.24 |
jQuery 또는 다른 라이브러리를 사용하는 Apple Cover-flow 효과? (0) | 2020.12.24 |
asp : TextBox ReadOnly = true 또는 Enabled = false? (0) | 2020.12.24 |