DataObjects as Pages(SSBits教程) - Sivlerstripe 3

时间:2013-10-24 08:28:14

标签: php silverstripe

我尝试在ssbits中使用本教程http://www.ssbits.com/tutorials/2010/dataobjects-as-pages-part-2-using-model-admin-and-url-segments-to-create-a-product-catalogue/作为我的新闻部分。

我想我做的一切都是正确的。但我无法保存NewsObject。出现此错误

  

请注意/mysite/code/DataObjects/NewsObject.php

的第155行

第155行是

$this->URLSegment = SiteTree::generateURLSegment($this->Title);

但这里有什么不对?

这是我的整个代码。也许有人可以帮我解决这个问题。

NewsObject:http://www.sspaste.com/paste/show/5278c59fd7904

NewsCategory:http://www.sspaste.com/paste/show/5268d844c9ee2

1 个答案:

答案 0 :(得分:1)

这就是DataObjects-as-Pages模块的用法:

$this->URLSegment = $this->generateURLSegment($this->Title);

这在同一个类中使用自定义函数:

public function generateURLSegment($title)
{
    $filter = URLSegmentFilter::create();
    $t = $filter->filter($title);

    // Fallback to generic page name if path is empty (= no valid, convertable characters)
    if(!$t || $t == '-' || $t == '-1') $t = "page-$this->ID";

    // Hook for extensions
    $this->extend('updateURLSegment', $t, $title);

    return $t;
}