2017-12-08 6 views
0

내가 가지고 기업, User 및 사용자 수 많은 전화 번호를 가지고, 그래서 필드가 : User.numbers 엔티티 Number UserType을 :심포니 - orphanRemoval 및 Stof Softdeleteable

->add('numbers', CollectionType::class, array(
    'entry_type' => NumberType::class, 
    'by_reference' => false, 
    'allow_add' => true, 
    'allow_delete' => true, 
)) 

필드 번호는 @Gedmo\SoftDeleteable를 사용합니다. Ok - 전화 번호를 직접 삭제할 때 Ok입니다. 전화 번호는 삭제되지 않으며 삭제 된 것으로 표시됩니다.

그러나 사용자를 업데이트하고 5 개의 번호가있는 경우 하나만 삭제하고 4로만 양식을 보냅니다. 엔티티 관리자는 소프트 삭제를 무시하고 어쨌든 삭제합니다.

고아 제거와 함께 소프트 삭제가 가능한가요?

+0

는 고아 제거는 구체적으로 일치하는 부모 레코드없이 삭제 하드 데시벨 기록에 기록됩니다. –

+0

아니요, Gedmo \ SoftDeleteable은 OrphanRemoval과 호환되지 않습니다. 문제 목록을 참조하십시오. –

답변

0

이것은 소프트 삭제 가능 구성 요소의 예상되는 동작입니다. 처음으로 삭제하려고하면 소프트 삭제로 표시됩니다. 삭제 된 항목이 삭제 된 것으로 표시되면 영구 삭제됩니다.

Doctrine 필터 (소프트 삭제)로 필터링 한 곳에서 누락 된 항목을 제출하고 있으므로 양식에 항목이 누락되어 삭제 된 것으로 표시되면 제출하십시오.

확인 : 나는 두렵지 않아 https://github.com/Atlantic18/DoctrineExtensions/blob/v2.4.x/lib/Gedmo/SoftDeleteable/SoftDeleteableListener.php#L67