2016-07-28 65 views
1

銀色條紋是否具有遞歸數據關係?我試圖實現它,它沒有提供任何錯誤,但是modeladmin頁面是空白的。銀色條紋是否具有遞歸數據關係?

例HAS_ONE對產品遞歸關係本身:

class Product extends DataObject { 

    private static $db = array(
     'Name' => 'Varchar', 
     'ProductCode' => 'Varchar', 
     'Price' => 'Currency' 
    ); 

    private static $has_one = array(
     'Product' => 'Product' 
    ); 
} 
+0

請提供一個例子,說明你會問什麼,以便得到更好的回覆更容易 – Barry

+0

我上面加了一個例子。 – Devone

回答

2

是的,這是可能的。

但是,使用Many_Many關係執行此操作時可能會出現問題。

+2

請給出一些例子$ Has_One和Many_Many關係,它似乎是無證的。 – Devone

+0

你的例子看起來非常好,你有什麼麻煩? –

+0

問題是dev/build沒有達到/ finish產品類,所以ModelAdmin是空白的。什麼可能是錯的?我將更頻繁地使用$ Many_Many,遞歸使用時會出現什麼問題? – Devone

0

我的答案是「不」這個以這種方式完成的。當我需要這在我創建了過去的「有一個」爲DB陣列中的一個「INT」 ......

class Product extends DataObject { 

    private static $db = array(
     'Name' => 'Varchar', 
     'MyProductID' => 'Int', 
    ); 

} 

這意味着我不得不添加casting的彙總字段,爲搜索字段定製scaffolding並在getCMSFieldsreplaceField定義DropdownField的int字段以選擇產品。

+0

但Silverstripe有遞歸數據關係嗎?現實世界中的產品ID不限於int。 – Devone

+1

我給出了「不」的答案......所以不。並且,您在has_one Product的問題中的代碼將創建一個名爲「ProductID」的Int字段,銀色條紋中的_ALL_ ID受ORM的控制並且是Ints ...所以雖然您是正確的,但如果您製作自己的系統可以選擇別的東西......但不是用銀條紋,而不是你給出的例子。 – Barry

+0

Barry如果你可以給$ has_one定義完整性,我會看看你的解決方案,謝謝 – Devone