คำถามติดแท็ก admin-controller

6
Magento 2 Custom Admin Action เปลี่ยนเส้นทางไปยังแดชบอร์ด
ฉันกำลังเรียนหลักสูตรการพัฒนาพื้นฐาน Magento 2 และการออกกำลังกาย Admin Router / Controller ดูเหมือนจะล้าสมัย เราเตอร์ใช้งานได้ แต่คอนโทรลเลอร์ไม่ทำงานมันจะเปลี่ยนเส้นทางไปยังหน้าแรกของผู้ดูแลระบบเสมอ รหัสสำหรับแอปเราเตอร์/ รหัส / การฝึกอบรม / ทดสอบ / etc / adminhtml / route.xml : <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/framework/App/etc/routes.xsd"> <router id="admin"> <route id="test" frontName="test"> <module name="Training_Test" before="Magento_Backend" /> </route> </router> </config> รหัสสำหรับแอปตัวควบคุมผู้ดูแลระบบ/ รหัส / การฝึกอบรม / ทดสอบ / ตัวควบคุม / …

2
การกระทำสาธารณะในตัวควบคุมผู้ดูแลระบบ
ฉันได้ค้นพบว่าในชั้นเรียน\Magento\Backend\App\AbstractAction(บรรพบุรุษของทุกการกระทำของตัวควบคุมผู้ดูแลระบบ) มีสมาชิกชื่อ_publicActionsที่ใช้ในการตรวจสอบความลับคีย์เช่นนี้ if (is_array($this->_publicActions) && in_array($this->getRequest()->getActionName(), $this->_publicActions)) { return true; } ซึ่งหมายความว่าหากชื่อการกระทำบางอย่างอยู่ในรายการ_publicActionsคุณสามารถเข้าถึงการดำเนินการได้โดยไม่ต้องใช้รหัสลับใน URL นี่เป็นพรสำหรับการพัฒนาและการดีบักเนื่องจากคุณสามารถทำได้ROOT/admin/module/controller/actionด้วยตนเองโดยไม่จำเป็นต้องรู้รหัสลับของผู้ดูแลระบบ แต่สิ่งที่ฉันไม่เข้าใจคือเหตุผลที่ฉันสามารถเข้าถึงหน้าแก้ไขผลิตภัณฑ์โดยไม่มีรหัสลับได้ เพียงแค่โทรหน้าผลิตภัณฑ์แก้ไขใด ๆ ROOT/admin/catalog/product/edit/id/{product_id_here}เช่นนี้ publicActionsสมาชิกจะถูกเขียนทับสำหรับการสั่งซื้อ (ที่ช่วยให้ดัชนีและมุมมอง) ในผลิตภัณฑ์ (สำหรับการแก้ไข) และในการควบคุมการเปลี่ยนเส้นทางสำหรับการเปลี่ยนเส้นทาง ตอนนี้คำถามของฉัน: ทำไมการแก้ไขบางอย่างอนุญาตโดยไม่มีรหัสลับและเมื่อใด / ฉันควรอนุญาตให้โมดูล CRUD ที่กำหนดเองโดยไม่มีรหัสลับได้อย่างไร

3
วิธีบันทึกฟิลด์ที่กำหนดเองในตารางฐานข้อมูลที่กำหนดเองขณะแก้ไขผลิตภัณฑ์จากแบ็คเอนด์
ฉันได้สร้างโมดูลที่กำหนดเองเพื่อแสดงแท็บที่กำหนดเองในแบบฟอร์มผลิตภัณฑ์ในส่วนหลัง ฉันใช้นี้วิธีการแก้ปัญหา ตอนนี้บนแท็บฉันกำลังเพิ่มเขตข้อมูลที่กำหนดเองเพื่อบันทึกในตารางฐานข้อมูลที่กำหนดเอง พูด<input type="text" name="my_new_field" value="123"> สร้างตัวควบคุมที่กำหนดเองสำหรับผลิตภัณฑ์ของผู้ดูแลระบบด้วยเช่นกัน ใน etc / di.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <preference for="Magento\Catalog\Controller\Adminhtml\Product\Save" type="Namespace\Module\Controller\Adminhtml\Rewrite\Product\Save" /> </config> และใน Controller / Adminhtml / Rewrite / Product / Save.php <?php namespace Namespace\Module\Controller\Adminhtml\Rewrite\Product; class Save extends \Magento\Catalog\Controller\Adminhtml\Product\save { public function execute() { echo "hello"; print_r($_POST); die; return parent::execute(); …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.