SilverStripe 4 - Ошибка автоматической публикации версионных файлов в DataExtension

Как указано в этом решении, предложенный обходной путь очень хорошо работает на dev а также test Окружение СС. Рекомендуется избегать текущей ошибки, связанной с автоматической публикацией файлов, управляемых через DataObject$owns имущество.

Но так как я загрузил свой проект в производство - на live env - обходной путь больше не работает.

В моем случае я работаю над DataExtension из User модель. Остальная часть реализации в точности следует вышеупомянутому случаю - с UploadField, В производстве, кажется, что фрагмент игнорируется в своем состоянии. В частности, это моя версия:

UserExtension

// AllegatiDownload: many_many File type uploaded with UploadField
public function onAfterWrite()
{
    if ($this->owner->AllegatiDownloadID) { // <- This is being ignored in live version
        $this->owner->AllegatiDownload()->publishSingle();
    }

    parent::onAfterWrite();
}

Если я попытаюсь заменить

$this->owner->AllegatiDownloadID

с

$this->owner->AllegatiDownload()

Условие пройти, но $this->owner->AllegatiDownload()->publishSingle() возвращает исключение 500 исключений. Просто:

Произошла ошибка

И, как я уже сказал, это происходит только в производстве.

Заранее спасибо за поддержку.

1 ответ

Решение

Сегодня я сбросил базу данных проекта, чтобы обновить пользовательский интерфейсный компонент, взаимодействующий с ней. Кажется, что после этого сброса вопрос решается. Это довольно странно, потому что я пробовал много /dev/build?flush=all до того, и ничего не произошло. Кеш сервера может быть? Я не знаю. Но теперь обходной путь работает, как и ожидалось.

В любом случае спасибо за поддержку.

Другие вопросы по тегам