I’m trying to cascade remove by removeCollection method, but it does not work.
scProductTypeField objects remain in the database.
$modx->addPackage('sc', $modx->getOption('core_path') . 'components/sc/model/');
$_DATA = $scriptProperties['data'];
if(! $modx->removeCollection('scProductType', array('`id` IN ('.$_DATA.')')) ) {
return $modx->error->failure( $modx->lexicon('sc.proc_err_remove') );
}
return $modx->error->success('');
<object class="scProductType" table="sc_products_types" extends="xPDOSimpleObject">
<field key="alias" dbtype="varchar" precision="100" phptype="string" null="false" unique="true"/>
<field key="description" dbtype="varchar" precision="255" phptype="string" default="null"/>
<field key="options" dbtype="text" phptype="json" default="{}" />
<index alias="PRIMARY" name="PRIMARY" primary="true" unique="true">
<column key="key" collation="A" null="false"/>
</index>
<composite alias="scProduct" class="scProduct" local="id" foreign="type" cardinality="many" owner="local" />
<composite alias="scProductTypeField" class="scProductTypeField" local="id" foreign="product_type" cardinality="many" owner="local" />
</object>
<object class="scProductTypeField" table="sc_products_types_fields" extends="xPDOSimpleObject">
<field key="product_type" dbtype="integer" precision="10" phptype="integer" null="false" />
<field key="name" dbtype="varchar" precision="100" phptype="string" null="false"/>
<field key="type" dbtype="varchar" precision="20" phptype="string" null="false"/>
<index alias="PRIMARY" name="PRIMARY" primary="true" unique="true">
<column key="key" collation="A" null="false"/>
</index>
<aggregate alias="scProductType" class="scProductType" local="product_type" foreign="id" cardinality="one" owner="foreign" />
<composite alias="scProductField" class="scProductField" local="id" foreign="field" cardinality="many" owner="local" />
</object>
Anyone can help me?