doumo0206 2017-09-28 23:33
浏览 19

SilverStripe 4 beta3 - 来自DataObject的图像未显示在Template.ss中

Feeling a little stupid here, I'm hoping this is just something new in SS4 that I'm unaware of and not just my advanced age getting the better of me...

I have an UploadField in my DataObject. But when I loop through it in my template I can't get the Image to display.

MyPage.php:

<?php
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Forms\GridField\GridField;
use SilverStripe\Forms\GridField\GridFieldConfig_RecordEditor;
use UndefinedOffset\SortableGridField\Forms\GridFieldSortableRows;
class MyPage extends Page {
    private static $has_many = array(
        'MyObjects' => MyObject::class
    );
...

MyObject.php:

<?php
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\ORM\DataObject;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\TabSet;
use SilverStripe\Forms\TextField;
use SilverStripe\AssetAdmin\Forms\UploadField;
use SilverStripe\Assets\Image;
use SilverStripe\AssetAdmin\Forms\PreviewImageField;
class MyObject extends DataObject {
    private static $db = array(
        'Title'         => 'Varchar(255)'
    );
    private static $has_one = array(
        'MyImage'   => Image::class,
        'MyPage'    => MyPage::class
    );
    public function getGeneratedCMSFields() {
        $fields = FieldList::create(TabSet::create('Root'));
        $fields->addFieldToTab('Root.Main', TextField::create('Title', 'Title'));
        $fields->addFieldToTab('Root.Main', $img = UploadField::create('MyImage', 'My Image'));
        $img->getValidator()->setAllowedExtensions = array('jpg', 'jpeg', 'gif', 'png');
        $fields->removeFieldFromTab('Root.Main', 'MyPageID');
        return $fields;
    }
    public function getCMSFields() {
        $fields = $this->getGeneratedCMSFields();
        return $fields;
    }
}

MyPage.ss:

<% loop $MyObjects %>
    <h1>$Title</h1>
    <% with $MyImage %><img src="{$URL}" title="{$Up.Title}"><% end_with %>
<% end_loop %>

This prints out the $Title and alt img tag as expected, but no image. I've even tried to reduce the complexity to simply <% loop $MyObjects %> $MyImage <% end_loop %> and still no image. What am I missing?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 关于#Java#的问题,如何解决?
    • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
    • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
    • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
    • ¥15 cmd cl 0x000007b
    • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
    • ¥500 火焰左右视图、视差(基于双目相机)
    • ¥100 set_link_state
    • ¥15 虚幻5 UE美术毛发渲染
    • ¥15 CVRP 图论 物流运输优化