Как добавить / сохранить / опубликовать изображение на странице в Silverstripe 4

Проект Silverstripe 4 имеет расширенную страницу, которая автоматически генерирует «MetaImage» при сохранении, который затем должен быть присоединен к странице. Пример кода ниже:

class ExamplePage extends \Page
{

private static $has_one = [
'MetaImage' => 'SilverStripe\Assets\Image'
];

public function onBeforeWrite()
{

if ($this->MetaImageID == 0) {
$metaObjectImage = new Image();
$metaObjectImage->setFromLocalFile($tmpFolder.'/'.$fileName);
$metaObjectImage->ParentID = $saveFolder->ID;
$metaObjectImage->Title = $this->Title;
$metaObjectImage->write();
$metaObjectImage->doPublish();
$this->MetaImageID = $metaObjectImage->ID;
}

parent::onBeforeWrite();
}
}

Однако изображение подключается к версии «Stage», а не к «Live». MetaImageID обновляется в ExamplePage таблица в базе данных, но не ExamplePage_Live Таблица.

Я предполагаю, что проблема в $this->MetaImageID = $metaObjectImage->ID; неправильно устанавливает отношения, но я не уверен, как это изменить, поэтому он сохраняет «Live» при публикации ExamplePage.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]