【问题标题】:SilverStripe 3 multiple UploadField issueSilverStripe 3 多个 UploadField 问题
【发布时间】:2012-10-19 15:11:43
【问题描述】:

我在 SilverStripe CMS 中遇到了多个 UploadFields 的问题。

上传一堆图片时,它们似乎可以正确上传和预览。但是在保存页面并重新加载和查看前端时,没有图像。预览应该在的地方只是一张空白图片,前端没有任何 URL 输出。

图片正在上传到 assets 目录,并且数据库中文件的路径是正确的。我现在有点不知所措。

这是我的页面模型中的代码

<?php
class Page extends SiteTree {

public static $db = array(
);  

public static $many_many = array(
    'Images' => 'Image'
);  

    public function getCMSFields() {
    $fields = parent::getCMSFields();

    $fields->addFieldsToTab('Root.Main', new UploadField('Images','Images',$this->Images()), 'Content');

    return $fields;
}   

}

【问题讨论】:

    标签: php silverstripe


    【解决方案1】:

    您遇到问题的只是网站的前端吗?您能否在模板文件中显示您用于显示图像的代码?

    应该是这样的

    <% loop $Images %>
        $setSize(150,150) // whatever you want to use here
    <% end_loop %>
    

    你不能使用 $Image。无论如何,它不会起作用。

    【讨论】:

    • 不仅仅是前端,CMS 中也是如此。
    • 尝试从 addFieldsToTab() 函数中删除 $this->Images()。
    • 有同样的问题,删除 $this->Images() 解决了它。不知道我从哪里复制/粘贴...
    【解决方案2】:

    假设您使用默认主题“simple”,在后端(CMS)创建了“Page”类型的页面,上传了图片并发布了页面。

    转到:

    根文件夹 -> 主题 -> 简单 -> 模板 -> 布局 -> 打开文件“Page.ss”

    类型(上述“Ryan M”提供的解决方案)

    <% loop $Images %>
        $setSize(150,150)
    <% end_loop %>
    

    之后

    <div class="content">$Content</div>
    

    通过在浏览器的地址栏中提供您的页面 URL 转到前端。

    【讨论】:

      猜你喜欢
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多