2013-10-11 10 views
7

मैं किसी अन्य पाठ द्वारा सोनाटाएडमिन ब्रेडक्रंब में ऑब्जेक्ट की आईडी को कैसे बदल सकता हूं?सोनाटाएडमिन: ब्रेडक्रंब में आईडी को प्रतिस्थापित करें

यदि मैं अपने दस्तावेज़ में __toString() सेट करता हूं, तो यह केवल संपादन के लिए काम करता है। जब मैं नया रिकॉर्ड बनाने का प्रयास करता हूं, तो अंतिम ब्रेडकंब में MyDocument:0000000000e09f5c000000006a48ef49 जैसा कुछ है।

मैं एक विधि खोज रहा हूं जो मुझे दस्तावेज़ :: toString() शून्य लौटाता है, तो मुझे अंतिम ब्रेडकंप के रूप में कुछ पाठ सेट करने की अनुमति देता है।

उत्तर

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()' खाली मूल्य देता है? 'खाली_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 %} 
संबंधित मुद्दे