Я этот код, который создает новый образ на основе нового файла добавляется к файловой системе, но не в БД:SilverStripe Изображение не DataObject доступны после создания
$image = Image::create();
$image->Filename = 'assets/Art/e3434cc7-d348-491a-9dc8-325af3d9086d.jpg';
$image->write();
$images = Image::get();
$image = $images->last();
$vd = new ViewableData();
$ad = new ArrayData(array(
'Image' => $image
));
$strHTML = $vd->customise($ad)->renderWith('Art');
Art.ss содержит только $Image.SetWidth(100)
Игнорирование того, что запрос не ищет идентификатор или что-то еще ... Почему изображение отображается только в $strHTML
, если я получаю изображение из БД после создания? Если удалить код, приведенный ниже, $strHTML
пуст:
$images = Image::get();
$image = $images->last();
Что дает вам 'var_dump ($ image);' или '$ Image.Debug' (в вашем шаблоне)? Объект изображения? Имеется ли файл изображения? Являются ли активы/Art/доступны для записи на веб-сервер? ты покраснел? – wmk
'var_dump ($ image)' после '$ image-> write()' выплескивает объект Image, но по какой-то причине свойство Filename является 'assets/e3434cc7-d348-491a-9dc8-325af3d9086d.jpg' not 'assets/Art/e3434cc7-d348-491a-9dc8-325af3d9086d.jpg', как и при извлечении из БД. Существуют и другие отличия: https://www.diffnow.com/?report=scxft. Левый документ - один раз после записи, правый документ создается сразу после, а затем извлекается из БД. – Dave
это два разных изображения, так как они имеют разные идентификаторы, см. $ Record array ... Как файл копируется в активы? И мне интересно, почему создается другой файл ... – wmk