คำถามติดแท็ก controllers

หมายถึงคำถามเกี่ยวกับตัวควบคุมและวิธีการดำเนินการ

1
ความแตกต่างระหว่าง / Controller และ / controllers
คำถามที่ฉันหมายถึงการขออายุทฤษฎีมากกว่าสิ่งอื่นใด ฉันมีประสบการณ์ในการพัฒนาส่วนขยายโดยใช้โครงสร้างไฟล์โมดูล Magento ปกติ ฉันสังเกตว่าเมื่อดูที่ 'ส่วนขยาย' ของ Mage บางรายการนั้นมีไดเรกทอรี / Controller วัตถุประสงค์ของคอนโทรลเลอร์เหล่านี้คืออะไรและแตกต่างไปอย่างไรกับคอนโทรลเลอร์ที่ใช้ตามปกติภายใน / คอนโทรลเลอร์คอนโทรลเลอร์? ฉันสามารถเห็นชื่อที่มีโครงสร้างแตกต่างกันดังนั้นฉันรวบรวมพวกเขาโดยอัตโนมัติโหลดในวิธีที่แตกต่างกัน แต่มีวัตถุประสงค์อะไร / ชั้นเรียน Controller ทำหน้าที่? ขอบคุณทุกคน



5
ส่งข้อมูลจากคอนโทรลเลอร์ไปยัง phtml
ฉันมีตัวควบคุมนี้: ... public function insertAction() { $something = 'testcase'; $this->loadLayout(); $this->_title($this->__("the title")); $this->renderLayout(); } ... ฉันต้องการเข้าถึง$somethingเอกสาร. phtml ของฉันฉันจะทำอย่างไร (หรือใช้วิธีอื่น: ฉันจะเข้าถึง$somethingไฟล์. phtml ของฉันได้อย่างไร)

3
Magento 2: เขียนคอนโทรลเลอร์อีกครั้ง
ฉันจะเขียนคอนโทรลเลอร์ใหม่อีกครั้ง (นั่นเป็นการกระทำจริง) ใน Magento 2 ได้อย่างไร ฉันพยายามตามคำแนะนำที่นี่เช่นนี้: ฉันมีโมดูลของตัวเองที่เรียกว่าNamespace_Moduleมีdi.xmlไฟล์ที่ถูกนำมาพิจารณาเพราะระบบเดียวกันการทำงานในรูปแบบและบล็อก ตัวอย่าง: <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd"> <!-- this one doesn't work for a controller action --> <preference for="Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatistics" type="Namespace\Module\Controller\Adminhtml\Dashboard\RefreshStatistics" /> <!-- this one works for a model --> <preference for="Magento\Customer\Model\Resource\GroupRepository" type="Namespace\Module\Model\Resource\Customer\GroupRepository" /> <!-- this one works also for a block --> <preference …

4
วิธีรับเส้นทางไดเรกทอรีสื่อในไฟล์ phtml ใน magento 2
ใช้วิธีการด้านล่างเพื่อรับเส้นทางไดเรกทอรีสื่อแต่มันกลับข้อผิดพลาด $om = \Magento\Core\Model\ObjectManager::getInstance(); $directoryList = $om->get(\Magento\App\Filesystem\DirectoryList::class); $pubMediaDir = $directoryList->getPath(\Magento\App\Filesystem\DirectoryList::MEDIA); โปรดช่วยฉันหาวิธีแก้ปัญหา

5
ทำไมฉันไม่สามารถฉีด ProductRepositoryInterface ใน Magento 2 ได้?
ฉันมีการดำเนินการควบคุมที่ฉันต้องการฉีดที่เก็บสินค้า namespace Nosto\Tagging\Controller\Export; use Magento\Catalog\Api\ProductRepositoryInterface; use Magento\Store\Model\StoreManagerInterface; use Magento\Backend\App\Action; use Magento\Framework\App\Action\Context; class Test extends Action { private $_productRepository; public function __construct( Context $context, StoreManagerInterface $storeManager, ProductRepositoryInterface $productRepository ) { parent::__construct($context); $this->_storeManager = $storeManager; $this->_productRepository = $productRepository; } ไม่ว่าฉันจะสั่งคำสั่งคอนสตรัคเตอร์ของฉันแบบใดก็ตามวีโอไอพีของการพึ่งพาการฉีดมักจะเป็นชั้นที่ไม่ถูกต้องสำหรับการproductRepositoryโต้แย้งที่นำ PHP ไปโยนและข้อผิดพลาดการโต้แย้ง storeManagergetd ฉีดเพียงแค่ปรับ การล้างแคชไม่ได้ช่วย นี่คือข้อยกเว้นโยน: Recoverable Error: Argument 3 passed to …

4
Magento2 - Custom Controller พ่นข้อผิดพลาด
ฉันสร้างโมดูลแสดงในนี้โพสต์ แต่ตัวควบคุมของฉันไม่ทำงาน ฉันได้รับข้อความแสดงข้อผิดพลาดนี้: ข้อผิดพลาดที่สามารถกู้คืนได้: อาร์กิวเมนต์ 1 ผ่านไปยัง MP \ MyModule \ Controller \ Index \ CheckUserName :: __ construct () จะต้องเป็นอินสแตนซ์ของ Magento \ Framework \ App \ Action \ Context อินสแตนซ์ของ Magento \ Framework \ ObjectManager \ ObjectManager ที่กำหนดเรียกใน D : \ xampp \ htdocs \ magento2 \ seller \ …

1
วิธีการแทนที่ AccountController ของคอนโทรลเลอร์
ฉันต้องการแทนที่ตัวควบคุมวิธีการ Core/Mage/Customer/controllers/AccountController.php และเพิ่มวิธีการใหม่ เนื่องจากตัวควบคุมนี้แก้ไขไม่ถูกต้อง - จึงควรเขียนทับ ตามข้อกำหนดของโครงการการแทนที่ผู้ควบคุมจะต้องเป็น local/New/Mage/Customer/controllers/AccountController.php การทำเช่นนี้สร้างการตั้งค่าไฟล์ แต่อยู่customer/account/test, customer/account /ajaxไม่ตอบสนองและcustomer/account/loginมันไม่ได้แทนที่ กรุณาช่วยในการดำเนินการนี้ app / app / etc / โมดูล / New_Mage_Customer.xml <?xml version="1.0"?> <config> <modules> <New_Mage_Customer> <active>true</active> <codePool>local</codePool> </New_Mage_Customer> </modules> </config> app / รหัส / ท้องถิ่น / ใหม่ / Mage / ลูกค้า / etc / config.xml <?xml version="1.0"?> <config> …

1
ใช้คำสงวนใน Magento 2 URL
เป็นไปได้หรือไม่ที่จะสร้างโมดูลใน Magento 2 โดยใช้การกำหนดเส้นทางมาตรฐานที่ตอบสนองต่อ URL ในรูปแบบของ http://magento.example.com/namespace_module/return/index นั่นคือ - URL ที่พารามิเตอร์ที่สองคือคำหลักที่สงวนไว้ของ PHP ปัญหาข้างต้นคือการสร้างชื่อคลาสตัวควบคุม PHP ที่ Namespace\Module\Controller\Return\Index และReturnใน namespace นั้น PHP ผิดกฎหมาย ฉันรู้ว่าพารามิเตอร์สุดท้ายของ URL (เรียกว่าการกระทำแบบดั้งเดิม) เป็นคำหลักที่สงวนไว้หรือไม่ http://magento.example.com/namespace_module/foo/return วีโอไอพีนั้นให้ฉันสร้างคลาสคอนโทรลเลอร์ที่ชื่อ Namespace\Module\Controller\Foo\ReturnAction อย่างไรก็ตามสิ่งนี้ใช้ไม่ได้กับพารามิเตอร์ที่สอง มีวิธีทำเช่นนี้โดยใช้เทคนิคการกำหนดเส้นทาง Magento 2 มาตรฐานหรือไม่? ถ้าไม่เป็นเช่นนั้นมีวิธีปฏิบัติที่ดีที่สุดในการฉีดวัตถุเราเตอร์ที่กำหนดเองเพื่อให้เกิดพฤติกรรมนี้หรือไม่หรือมีเทคนิคอื่น ๆ ที่จะให้ฉันแก้ไขปัญหานี้ได้หรือไม่? (ติดตั้งafterปลั๊กอินMagento\Framework\App\Router\ActionListหรือไม่)


1
ฉันจะทำให้หน้าโมดูลที่กำหนดเองของฉันใช้ SSL ได้อย่างไร
ฉันได้สร้างโมดูลด้วยบางหน้าและฉันสงสัยว่าฉันจะบังคับให้หน้านี้ใช้ SSL ใน url ได้อย่างไรเช่นหน้าเข้าสู่ระบบของลูกค้า ไม่ใช่ทุกหน้าที่ต้องการ แต่บางคนก็ทำได้ สิ่งที่อยู่ในใจ (แม้ว่าฉันยังไม่ได้ลอง) ก็คือการประเมิน URL ในตัวควบคุมการดำเนินการและเปลี่ยนเส้นทางhttps://หากเปิดใช้งาน SSL ในการตั้งค่าแบบวีโอไอพีและ URL ปัจจุบันไม่ได้ใช้งาน วิธีนี้ถูกต้องหรือไม่ หรือการตั้งค่าประเภทนี้ไปในไฟล์กำหนดค่าหรือไม่

1
วิธีการโทร ajax ง่าย ๆ ใน Magento 2.1.0
ฉันได้เพิ่มปุ่มง่ายๆในหนึ่งในไฟล์ phtml ของฉัน <input type='button' name='emq_zip_btn' class='emq_zip_btn' value='Go'> ฉันได้เพิ่มไฟล์ js ที่กำหนดเองหนึ่งไฟล์ ("emq.js") จากโมดูลที่กำหนดเอง (Ved_Mymodule): require([ "jquery", "jquery/ui" ], function($v){ //<![CDATA[ $v = jQuery.noConflict(); $v(document).ready(function() { console.log('jquery loaded from emq.js'); $v(".emq_zip_btn").on('click',function(e) { console.log('clicked'); }); }); //]]> }); เมื่อฉันคลิกที่ปุ่มด้านบนแล้ว "คลิก" ถูกพิมพ์ในคอนโซลเช่น jQuery ทำงานอย่างถูกต้อง นี่คือไฟล์ควบคุมจากโมดูลที่กำหนดเอง Ved_Mymodule: Ved \ MyModule \ ควบคุม \ ดัชนี …

3
การสร้างโมดูลที่กำหนดเองใน magento2 แสดงข้อผิดพลาดร้ายแรง
ฉันทำงานเกี่ยวกับการสร้างโมดูลที่กำหนดเองใน magento 2 แต่มันไม่ทำงาน คุณช่วยแนะนำฉันในที่ที่ฉันผิดไปได้ไหม. รหัสโมดูลของฉัน: app / etc / config.php: 'modules' => array ( 'Ramesh_Sample' => 1, ), app / รหัส / Ramesh / ตัวอย่าง / etc / module.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> <module name="Ramesh_Sample" schema_version="2.0.0"> </module> </config> app / รหัส / Ramesh / ตัวอย่าง / etc / …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.