Связанные таблицы и каскадное удаление

Добрый день всем! Есть проблема с удалением объектов.
Есть кастомный объект, назовем Object, с ним связан объект ObjectFiles один-ко-многим. А уже с объектом objectFiles связан один-ко-многим объект ObjectFilesDownload. Проблема возникла при удалении объекта Object. Я ожидал удаление объкта и всех связанных записей с данным объектом. Увы, объект удаляется, связанные нет. Ошибка при удалении зависимых объектов — Error removing dependent object.
Проблема из- за связи objectFiles с ObjectFilesDownload. Как обойти, в чем загвоздка?

ЗЫ: С Object у меня связаны еще несколько объектов (уже без вложений), из них удаляется все нормально.
Владимир Бабусенко
14 марта 2016, 13:01
modx.pro
905
0

Комментарии: 3

Наумов Алексей
14 марта 2016, 16:10
0
Каскадно не удалял… но спрошу: точно дважды проверили описание связей объектов?
    Владимир Бабусенко
    14 марта 2016, 16:18
    0
    Схему лучше приложу (сокращеную)
    <object class="TechnicalSolutions" table="mstr_solution" extends="xPDOSimpleObject">        
    	<composite alias="DataFilesSolution" local="id" class="DataFilesSolution" foreign="solution_id" cardinality="many" owner="local" />        
    </object>
    
    <object class="DataFilesSolution" table="mstr_solution_data_files" extends="xPDOSimpleObject">
    	<field key="solution_id" dbtype="int" precision="10" phptype="integer" null="false" />            
    
    	<aggregate alias="SolutionDataFiles" class="TechnicalSolutions" local="solution_id" foreign="id" cardinality="one" owner="foreign" />
    	<composite alias="DownloadFileSolution" local="id" class="DownloadFileSolution" foreign="file_id" cardinality="many" owner="local" />
    </object>
    
    <object class="DownloadFileSolution" table="mstr_solution_data_files_download" extends="xPDOSimpleObject">
    	<field key="file_id" dbtype="int" precision="10" phptype="integer" null="false" />
    
    	<aggregate alias="FileSolutionDownload" class="DataFilesSolution" local="file_id" foreign="id" cardinality="one" owner="foreign" />
    </object>
    Владимир Бабусенко
    14 марта 2016, 17:30
    +1
    Судя по всему это баг xPDOObject::remove(). github.com/modxcms/xpdo/issues/48
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3