2013-10-11 36 views
7

如何用其他文本替換SonataAdmin麪包屑中的對象ID?SonataAdmin:替換麪包屑中的ID

如果我在我的文檔中設置了__toString(),它僅適用於編輯。當我嘗試創建新記錄時,在最後一個麪包房中有類似MyDocument:0000000000e09f5c000000006a48ef49的東西。

如果Document :: toString()返回null,我正在尋找一種方法,該方法允許我設置一些文本作爲最後的breadcump。

回答

13

這種行爲在實體直接執行:

public function __toString() 
{ 
    return $this->getFoo() ? : '-'; 
} 

捆綁使用的這種變體,包括return (string)$this->getFoo();$this->getFoo() ? : 'n/a';

相關問題:toString method for SonataAdminBundle Listing in Symfony2

+0

謝謝你的迴應!我在我的問題中提到這個解決方案。但是,如果我需要根據當前語言環境放置一些文本,例如使用翻譯器,那麼該怎麼辦?\t – Hast

+0

你的意思是如果你的'__toString()'返回空值?嘗試返回''empty_value''並將其翻譯到'messages.en.yml'文件中。如果它沒有幫助,看起來麪包屑打印在這裏:https://github.com/sonata-project/SonataAdminBundle/blob/2e9d4406a6cddc278a43c2c8f6297c33fbc6fb81/Resources/views/standard_layout.html.twig#L190。你可以用'| trans()'過濾器覆蓋它。 – TautrimasPajarskas

+0

謝謝!我將繼續搜索 – Hast

0

BTW一些​​很酷的東西就知道,您可以通過樹枝模板完全自定義麪包屑:

{% block sonata_breadcrumb %} 

    {% set _breadcrumb %} 
     <li><a href="#">Home</a></li> 
     <li><a href="#">Library</a></li> 
     <li class="active">Data</li> 
    {% endset %} 

    {{ parent() }} 

{% endblock %}