मैं किस बंडल में पता लगा सकता हूं?सिम्फनी 2 में वर्तमान बंडल कैसे प्राप्त करें?
उदाहरण के लिए, जब मैं web.com/participants/list में हूं, तो मैं "प्रतिभागियों" को पढ़ना चाहता हूं।
मैं किस बंडल में पता लगा सकता हूं?सिम्फनी 2 में वर्तमान बंडल कैसे प्राप्त करें?
उदाहरण के लिए, जब मैं web.com/participants/list में हूं, तो मैं "प्रतिभागियों" को पढ़ना चाहता हूं।
AFAIK यह अभी तक संभव नहीं है (कम से कम एक आसान तरीके से)। आपको प्रतिबिंब का उपयोग करना चाहिए। मैंने अपने सम्मेलनों के आधार पर बंडल नाम एंज अनुमान इकाई/भंडार/फॉर्म नाम प्राप्त करने के लिए एक त्वरित और गंदे सेवा लिखी। छोटी गाड़ी हो सकती है, इस पर एक नज़र डालें: http://pastebin.com/BzeXAduH
यह केवल तभी काम करता है जब आप नियंत्रक (Symfony2) से प्राप्त कक्षा को पास करते हैं। उपयोग:
entity_management_guesser:
class: Acme\HelloBundle\Service\EntityManagementGuesser
अपने नियंत्रक में:
$guesser = $this->get('entity_management_guesser')->inizialize($this);
$bundleName = $guesser->getBundleName(); // Acme/HelloBundle
$bundleShort = $guesser->getBundleShortName(); // AcmeHelloBundle
एक और संभावना गिरी का उपयोग करेंगे सभी बंडलों प्राप्त करने के लिए: Get a bundle name from an entity
वैसे आप से वर्तमान मार्ग के नियंत्रक प्राप्त कर सकते हैं,
$request->attributes->get('_controller');
आप इससे बंडल नाम पार्स कर सकते हैं।
आप नियंत्रक बस ऐसे ही में बंडल नाम प्राप्त कर सकते हैं:
// Display "SybioCoreBundle"
echo $this->getRequest()->attributes->get('_template')->get('bundle');
और एक टहनी टेम्पलेट अंदर:
{{ app.request.get('_template').get('bundle') }}
आदेश बंडल नाम पाने के लिए नियंत्रक में:
// Display "AcmeHelloBundle"
echo $this->getRequest()->attributes->get('_template')->get('bundle');
और एक टहनी टेम्पलेट के अंदर:
{{ app.request.get('_template').get('bundle') }}
आदेश नियंत्रक में नियंत्रक नाम प्राप्त करने के लिए:
// Display "Default"
echo $this->getRequest()->attributes->get('_template')->get('controller');
और एक टहनी टेम्पलेट के अंदर:
{{ app.request.get('_template').get('controller') }}
में नियंत्रक में कार्रवाई का नाम प्राप्त करने के लिए आदेश:
// Displays "index"
echo $this->getRequest()->attributes->get('_template')->get('name');
और एक टहनी टेम्पलेट के अंदर:
{{ app.request.get('_template').get('name') }}
अगर आप @ टेम्पलेट एनोटेशन का उपयोग नहीं करते हैं तो '-> विशेषताएं-> प्राप्त करें (' _ टेम्पलेट ') उपलब्ध नहीं है। –
आप '$ request-> विशेषताएँ-> प्राप्त करें (' _ नियंत्रक '); 'या' $ this-> getRequest() -> विशेषताएँ-> प्राप्त करें (' _ नियंत्रक '); नियंत्रक नाम को पकड़ने के लिए नियंत्रक में। –
यह प्रतिक्रिया के बाद से 2.5 साल हो गया है, किसी को भी सवाल पर अभी तक कोई प्रगति के बारे में सुना? :) क्या बंडल नाम खोजने के लिए कोई "क्लीनर" तरीका है? :) –