2013-12-16 4 views
0

StctDoctrineExtensionsBundle과 함께 DoctrineExtensions를 사용하여 소프트 삭제 가능 동작을 얻고 있습니다.소프트 삭제 가능, 엔티티 사용 안 함

정말 잘 작동하지만 내 엔티티 중 하나에 대해서는 해제해야합니다. 내가 어떻게 할 수 있니? 나는 'disableForEntity'라는 메소드가 있음을 볼 수 있습니다. 어딘가에서 작동하는이 메소드로 어딘가 설정을해야합니까? 응용 프로그램의 한 항목에 대해이 필터를 끄고 싶습니다 (모든 작업).

내 특정 엔터티가이 필터로 기본 엔터티를 확장하기 때문에 문제가 발생했습니다.

가능하나요? 특정 엔터티를 사용하고 싶을 때마다 비활성화해야합니까? 내가 당신 엔티티 생각

답변

1

당신은이 :

<?php 

namespace Foo\BarBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use Gedmo\Mapping\Annotation as Gedmo; 

/** 
    * ... 
    * @Gedmo\SoftDeleteable(fieldName="deletedAt") 
    * @ORM\Entity 
*/ 
class Foo 
{ 
    /** 
    * @var \DateTime $deletedAt 
    * 
    * @ORM\Column(name="deleted_at", type="datetime", nullable=true) 
    */ 
    private $deletedAt; 

당신이 부드러운 당신이 내가 그것을 가지고

* @Gedmo\SoftDeleteable(fieldName="deletedAt") 
+0

을 제거하기 만 SO 삭제 withoud한다 엔티티에서 동작을 제거해야 내 기본 개체. 그리고 내 특정 엔티티는이 기본 엔티티를 확장합니다 ...이 "클래스 AdmUserHasMails는 BaseEntity를 확장합니다." –

+0

하나의 엔티티에 대한 동작을 비활성화 할 수 없습니다. 모든 엔티티를 doctrine 확장이 아닌 softdeletable로 만드는 구현이기 때문입니다. – Shady

+0

BaseEntity를 확장 한 SoftDeleteableEntity를 만듭니다. 전자는 주석을 가지고 있고 후자는 BaseEntity가 아닙니다. 그런 다음 적절한 수퍼 클래스에서 모델 클래스를 확장하십시오. 물론 이와 같은 몇 가지 맞춤 클래스가있는 경우 두통이됩니다.이 시점에서 주석을 실제 엔티티 클래스로 이동하는 것이 좋습니다. 즉, * 모든 * 하위 클래스에 적용되지 않는 슈퍼 클래스에 것들을 넣지 마십시오. –

관련 문제