Silverstripe日期和图像错误

时间:2014-07-08 06:15:03

标签: silverstripe

这是.ss模板文件:

<ul>
    <% control Menu(1) %>
    <li><a href="$Link">$MenuTitle</a></li>
    <% end_control %>
</ul>
<div>
    <h1>$Title</h1>
    <div>Date : $Date.nice</div>

    $layout
    $Content
</div>

这是php文件:

class ArticlePage extends Page { 

    static $db = array( 
        'Date' => 'Date', 
    ); 

    private static $has_one = array( 
        'SingleImage' => 'Image'
    ); 

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

        $fields->addFieldToTab('Root.Content.Main', new DateField('Date'), 'Content');
        $fields->addFieldToTab(
            'Root.Upload',  
            $uploadField = new UploadField(
                $name = 'SingleImage',
                $title = 'Upload a single image', "Content"));

        return $fields;
    }
}

页面上没有显示日期和图像。

1 个答案:

答案 0 :(得分:0)

这可以是任何数量的东西。

可能是您没有在CMS中正确设置页面类型。

可能是您没有刷新模板缓存。
为此,请将?flush=all添加到您的网址末尾。

可能你没有完成上述任何一项,也没有完成数据库构建。
要执行此操作,请访问yoursite/dev/build

可能是您没有正确命名模板。它必须镜像php类名(ArticlePage.ss)

可能你没有把它放在正确的位置。它必须位于所选主题或项目文件夹中的模板文件夹中。重新定位文件后需要刷新(见上文)。

如果您使用主题,则可能是您没有选择正确的主题。请参阅相关文档。

可能是因为你没有勤勉地使用你的代码。格式化日期的点方法是.Nice,而不是.nice。正如你所描述的那样,$Date.asdf也不会显示任何结果。如果没有合理的输出值,模板变量将无提示失败。

与上述类似 - 布局变量为$Layout,而不是$layout(尽管这与此特定问题无关)。 $Layout也仅适用于“主要”模板(位于“模板”库中,而不是“布局”子文件夹中。)

如果以上所有检查结果,那么可能只是您还没有通过CMS输入任何信息。当然,您必须先完成此步骤才能显示任何内容。