2013-10-24 19 views
-4

我試圖從我的新聞部分ssbits使用本教程http://www.ssbits.com/tutorials/2010/dataobjects-as-pages-part-2-using-model-admin-and-url-segments-to-create-a-product-catalogue/DataObject作爲頁面(SSBits教程) - Sivlerstripe 3

我想我做的都對。但我無法保存NewsObject。這個錯誤出現

通知,/mysite/code/DataObjects/NewsObject.php

155線155線是這個

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

但是,什麼是錯在這裏?

這是我的整個代碼。也許有人可以幫我解決這個問題。

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

新聞分類:http://www.sspaste.com/paste/show/5268d844c9ee2

+0

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

這在同級別使用自定義功能這看起來很模糊,研究也很差....是的在錯誤中有超過'通知....'。還有那個教程是針對SS 2.4的。*它需要對SS 3進行一些更新...... – colymba

+0

沒有那是唯一的錯誤(開發模式是)。我經歷了一步一步的教程,並更新了像靜態...到私有靜態,公共功能等功能。我認爲剩下的應該可以爲SS3? – invictus

回答

1

這是DataObjects-as-Pages模塊是如何做的:

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; 
} 
+0

sry,但我絕對不明白。我很困惑我需要哪些代碼,哪些不是。 – invictus

+0

將'generateURLSegment'函數添加到NewsObject類中。然後用'$ this-> URLSegment = $ this-> generateURLSegment($ this-> Title);'替換你的行'$ this-> URLSegment = SiteTree :: generateURLSegment($ this-> Title);''。 – 3dgoo

+0

這是我第一次嘗試,但它會導致在保存數據對象後在/ framework/control/injector/Injector.php的第847行發生錯誤。此外更新網址按鈕不起作用。點擊它之後,標準的'新產品'仍然在 – invictus