1
Silverstripe subsite module
을 사용합니다. Subsite
이 삭제되면 Domains, Settings
등과 같이 Subsite와 관련된 다른 모든 정보도 삭제하고 싶습니다. Subsite
모델을 확장 할 extension
을 만들었습니다.SilverStripe Subsite 모듈은 서브 사이트 삭제 관련 데이터를 모두 삭제합니다
<?php
class SubsiteExtension extends DataExtension {
public function onAfterWrite(){
parent::onAfterWrite();
//Some codes here
}
public function onBeforeDelete(){
//Check if member exist for Subsite, if so show warning.
}
public function onAfterDelete(){
$id = $this->owner->ID;
//DELETE ALL SUBDOMAINS RELATED TO DELETED SUBSITE
DB::query("DELETE FROM SubsiteDomain WHERE SubsiteID='".$id."'");
//DELETE SITE CONFIG
DB::query("DELETE FROM SiteConfig WHERE SubsiteID='".$id."'");
}
}
문제
- 코드는 완벽하게 작동합니다. 궁금해하는 다른 테이블에서 관련 레코드를 삭제하는 다른 좋은 방법이 있습니까 ??
onBeforeDelete
메서드에서 "모든 구성원을 삭제하지 않으면이 하위 사이트를 삭제할 수 없습니다"라는 사용자 지정 메시지를 표시하는 방법은 무엇입니까?
나는 이런 식으로 사고를하거나 나중에 (예 :보고 할 때) 데이터를 필요로하므로이 접근법을 제안 할 것입니다 ... https : // github. co.kr/lekoala/silverstripe-softdelete – Barry