2015-11-19 44 views
-1

我在我的內容樹中有兩個頁面sulu 1.0.13。在頁面「A」上,我通過內容類型爲「單一內部鏈接」的字段設置了頁面「B」的引用。Sulu cmf獲取引用者

當我在頁面「B」時,我想獲得引用頁面「A」。我在我的控制器中試過以下代碼:

$dm = $this->get('sulu_document_manager.document_manager'); 
$doc = $dm->find('992758cf-1da4-4e45-9ee4-ca9c4ec3998e'); // UUID of page "B" 
$di = $this->get('sulu_document_manager.document_inspector'); 
$node = $di->getNode($doc); 

$refs = $di->getReferrers($doc); // $refs is an empty collection 
$refs = $node->getReferences(); // $refs is an empty collection 
$refs = $node->getWeakReferences(); // $refs is an empty collection 

$ refs始終是一個空集合。

什麼是正確的方式來獲取推薦頁面?

更新:我現在使用的版本1.1.0 RC2

+0

你的問題並不十分清楚。請更清楚地描述您的問題,並嘗試自行解決問題。 – Greg

回答

3

可悲的是SingleInternalLink內容類型,目前只是保存UUID作爲一個字符串,而不是作爲PHPCR一個適當的參考。這也在GitHub Issue中描述。我會重新評估這個問題,看看我們能否在不久的將來解決這個問題。

作爲解決方法,您可以使用InternalLinks內容類型,該類型已將其值保存爲引用,但可以添加多個鏈接。

+0

我已經嘗試過InternalLinks,現在它可以工作,但是如果我調用'$ refs = $ di-> getReferrers($ doc);'',我會得到兩個元素。 「Sulu \ Bundle \ ContentBundle \ Document \ RouteDocument」類型和「Sulu \ Bundle \ ContentBundle \ Document \ PageDocument」類型中的另一個。 – huzi

+0

我對版本1.1.0有問題RC2 – huzi

+0

是的,這個問題在任何版本中都沒有修正......沒錯,我沒有想到......你可能必須檢查文檔是否來自'PageDocument'類型。路由有自己的樹,也是引用頁面,這就是爲什麼你得到兩個引用。 –