Не удаляются связанные записи при использовании виджетов в множественном режиме
krllgranin opened this issue · 0 comments
krllgranin commented
Если у виджета нет настройки VARIANTS, строки из связанной таблицы не удалятся. Заметил при использовании FileWidget в режиме MULTIPLE.
В методе \DigitalWand\AdminHelper\EntityManager::processReferencesData:
$variantsField = $fieldWidget->getSettings('VARIANTS');
...
if($result->isSuccess()){ // Удаление записей, которые не были созданы или обновлены
foreach ($referenceStaleDataSet as $referenceData) {
if (
!in_array($referenceData[$fieldWidget->getMultipleField('ID')], $processedDataIds) &&
array_key_exists($referenceData[$fieldWidget->getMultipleField('VALUE')], $variantsField)
) {
$result = $this->deleteReferenceData($reference,
$referenceData[$fieldWidget->getMultipleField('ID')]);
if(!$result->isSuccess()) {
break; // ошибка, прерываем удаление данных
}
}
}
}
До конца не понимаю архитектуру, поэтому не знаю как лучше исправить, добавить проверку на тип виджета или реализовать настройку VARIANTS у FileWidget?