Magento2 में पेज फैक्ट्री क्लास का उपयोग


19

मैगेंटो 2 में कस्टम मॉड्यूल पेज को प्रस्तुत करने का क्या उद्देश्य है कि निर्माणकर्ता \Magento\Framework\View\Result\PageFactoryमें इंजेक्ट किए गए फैक्ट्री वर्ग का उपयोग करके और पेज को प्रदर्शित करने के लिए बनाया जाए।

$resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);

मैगेंटो 1.x एप्रोच की तरह दिखने वाले डिस्प्ले के नीचे ये करने के बजाय

$this->_view->loadLayout();

$this->_view->renderLayout();

जवाबों:


16

वास्तव में आवश्यक नहीं है कि इसका उदाहरण दिया जाए \Magento\Framework\View\Result\Pageexecuteउम्मीद की जाती है कि इंटरफ़ेस को लागू करने वाले वर्ग का एक उदाहरण लौटाया जाए \Magento\Framework\Controller\ResultInterface

\Magento\Framework\View\Result\Pageबस एक संभव वापसी है।
अन्य संभावित रिटर्न हैं

  • \Magento\Framework\Controller\Result\Redirect
  • \Magento\Framework\Controller\Result\Raw
  • \Magento\Framework\View\Result\Layout
  • \Magento\Framework\Controller\Result\Forward
  • \Magento\Framework\Controller\Result\Json

और अन्य भी हो सकते हैं।
विधि पर एक नज़र डालें Magento\Framework\App\Action\Action::dispatch()
यह एक उदाहरण लौटना चाहिए \Magento\Framework\Controller\ResultInterfaceऔर परिणाम के आधार पर अलग-अलग कार्रवाई की जाती है, फिर से घोषित तरीकों को कॉल करके ResultInterface
यह dispatchविधि कॉल $result = $this->execute();करती है जो executeनियंत्रक क्रिया से विधि है। इसलिए मुझे लगता है कि यह स्थिरता के लिए है और नियंत्रक कार्रवाई के लिए एक अलग व्यवहार पेश करना आसान बनाता है। आपको बस एक नया वर्ग जोड़ने की जरूरत है जो ResultInterfaceइसे लागू करता है और यह सभी ढांचे द्वारा नियंत्रित किया जाएगा।


3

मेरा मानना ​​है कि विचार नियंत्रकों से वापस डेटा / मॉडल था, लेकिन वर्तमान कार्यान्वयन मेरे लिए भी अजीब लगता है।

व्यक्तिगत रूप से मुझे उम्मीद है कि नियंत्रक कुछ भी नहीं लौटाते हैं, शायद अन्य यूआरएल के लिए पुनर्निर्देशित करते हैं। पेज लेआउट के लिए इस पृष्ठ पर उपलब्ध मार्ग को जोड़ने की जरूरत होगी।

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-login">
     <route url="login"/>
    <body>
    </body>
</page>

JSON बाकी एपीआई से उपलब्ध होगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.