DigitalWand/digitalwand.admin_helper

Не удаляются связанные записи при использовании виджетов в множественном режиме

krllgranin opened this issue · 0 comments

Если у виджета нет настройки 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?