คำถามติดแท็ก magento-2.0

แสดงคำถามที่เกี่ยวข้องกับ Magento CE / EE รุ่น 2.0

4
วิธีการบันทึกและโหลดที่ไม่สอดคล้องในรูปแบบนามธรรม
ฉันเห็นว่าในแผนกพัฒนาของ Magento 2 repo วิธีการloadและsaveจากMagento\Framework\Model\AbstractModelชั้นเรียนเลิกใช้แล้ว แต่มีการเรียนการ gazillion ในหลักที่ขยายชั้นนี้และใช้และsave เมื่อสร้างโมดูลของตัวเองสำหรับส่วน CRUD ของเอนทิตีของฉันฉันทำตามแนวทางเดียวกันกับที่เป็นโมดูลหลัก แต่เนื่องจากวิธีการเหล่านี้เลิกใช้แล้วฉันจึงควรเตรียมพร้อมสำหรับอนาคต ฉันควรใช้อะไรแทนพวกเขา หรือฉันควรขยายอย่างอื่น?load

4
Magento 2: ส่วนลูกค้า / section.xml ทำงานอย่างไร
ฉันเพิ่งเข้ามามีแนวคิดใหม่ใน Magento 2 ที่ฉันพบว่าน่าสนใจ: ส่วนลูกค้า คุณบางคนอาจสังเกตเห็นการปรากฏตัวของsections.xmlไฟล์ที่มีลักษณะเช่นนี้: <?xml version="1.0"?> <!-- /** * Copyright © 2016 Magento. All rights reserved. * See COPYING.txt for license details. */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Customer:etc/sections.xsd"> <action name="sales/guest/reorder"> <section name="cart"/> </action> <action name="sales/order/reorder"> <section name="cart"/> </action> </config> จากสิ่งที่ฉันเข้าใจไฟล์เหล่านั้นจะระบุส่วนของลูกค้าที่ควรได้รับการอัปเดตเมื่อเรียกการกระทำที่เกี่ยวข้อง ฉันสังเกตเห็นตัวอย่างเช่นMagento/Checkout/etc/frontend/sections.xmlในส่วนต่อไปนี้: <action name="checkout/cart/add"> <section name="cart"/> </action> นี่คือสิ่งที่กระตุ้นให้เกิดการอัพเดตมินิมาร์ทหลังจากที่คุณเพิ่มผลิตภัณฑ์ลงในรถเข็น ฉันพยายามสร้างโมดูลที่กำหนดเองด้วยetc/frontend/sections.xmlไฟล์ต่อไปนี้เพื่อทดสอบคุณสมบัตินั้น: <?xml …

11
ปัญหา 'ไม่ได้ตั้งรหัสพื้นที่' ในคำสั่ง CLI ที่กำหนดเองใน Magento 2
ฉันพบข้อผิดพลาดขณะอัปเดตข้อมูลผ่าน CustomerRepositoryInterface [Magento\Framework\Exception\SessionException] Area code not set: Area code must be set before starting a session. [Magento\Framework\Exception\LocalizedException] Area code is not set ต่อไปนี้เป็นdi.xmlไฟล์ของฉัน <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Framework\Console\CommandList"> <arguments> <argument name="commands" xsi:type="array"> <item name="test1_command" xsi:type="object">Test\Module\Console\Command\Test1Command</item> <item name="test2_command" xsi:type="object">Test\Module\Console\Command\Test2Command</item> </argument> </arguments> </type> </config>

2
Magento Event Observers: Singleton กับ Model
ดังนั้นวีโอไอพีจึงเสนอวิธีการประกาศผู้สังเกตการณ์ 2 วิธี Singleton and Model (ตัวอย่างใหม่) โดยการระบุ<type>แท็กใน Magento 1.x และโดยการระบุsharedแอตทริบิวต์ใน Magento 2 Magento วิธีที่ 1 ในการทำมัน <events> <event_name> <observers> <unique_observer_name> <type>model|object|singleton|null</type> <class>class/alias_here</class> <method>methdNameHere</method> </unique_observer_name> </observers> </event_name> </events> Magento 2 เวอร์ชั่น: <event name="event_name"> <observer name="unique_observer_name" instance="Class\Name\Here" method="methodNameHere" shared="true|false" /> </event> ดังนั้นในกรณีของวีโอไอพี 1, ถ้า<type>แท็กเป็นรูปแบบหรือวัตถุชั้นจะ instantiated Mage::getModel()กับ ถ้ามันหรือมันหายไปมันถูกสร้างโดยใช้singletonMage::getSingleton() ในกรณีของ Magento 2 ถ้าsharedเป็นเช่นfalseนั้นคลาสจะถูกสร้างโดยใช้$this->_observerFactory->create() …

3
วิธีการใช้สัญญาบริการสำหรับโมดูลที่กำหนดเองใน Magento 2
เท่าที่เห็นในโพสต์นี้: เลิกบันทึกและวิธีการโหลดนามธรรมรุ่นsaveและloadวิธีการเลิกใช้ในวีโอไอพี 2 พัฒนาสาขา ดังนั้นแนวปฏิบัติที่ดีในขณะนี้คือการใช้สัญญาบริการเพื่อจัดการกับหน่วยงาน CRUD กระบวนการทีละขั้นตอนที่ฉันต้องทำเพื่อใช้สัญญาบริการสำหรับหน่วยงานโมดูลที่กำหนดเองของฉันคืออะไร หมายเหตุ: ฉันรู้ว่าอาจมีหลายพันวิธีในรุ่น CRUD ของฉันฉันแค่ขอวิธีการที่ชัดเจนตามที่ระบุไว้ที่นี่: http://devdocs.magento.com/guides/v2.0/extension-dev-guide /service-contracts/design-patterns.html : get save getList delete deleteById

16
Magento 2 CSS และ JavaScript ไม่โหลดจากโฟลเดอร์ที่ถูกต้อง
ฉันหวังว่าบางคนที่นี่สามารถช่วยได้ ฉันพยายามติดตั้งและเรียกใช้ Magento 2 บน WAMP บนเครื่อง Windows 7 ด้วยความสำเร็จเพียงเล็กน้อย หลังจากกระโดดผ่านห่วงจำนวนมากและหลากหลายเพื่อให้เว็บไซต์โหลดตอนนี้ฉันกำลังเผชิญกับ 404 คำตอบและไม่มีสไตล์หรือการโหลด javascript สเป็คเป็นดังนี้: ตัวอย่างวีโอไอพี-CE-2.0.0 + Apache 2.4.9 PHP 5.5.12 MySQL 5.6.17 เมื่อฉันดูที่คอนโซลของเบราว์เซอร์ท่ามกลางข้อผิดพลาดจะพยายามเข้าถึงไฟล์ที่ไม่ได้อยู่ในโฟลเดอร์ pub / static โฟลเดอร์ "frontend" ถูกโหลดขึ้นมาและไฟล์ส่วนใหญ่นั้นมีอยู่ ฉันสังเกตเห็นว่ามีบางไฟล์ CSS ที่ไม่มีอยู่ ในการรันคำสั่งการปรับใช้ PHP php bin/magento setup:static-content:deploy ที่กล่าวถึงในโพสต์อื่น ๆ ฉันได้รับข้อผิดพลาดด้านล่าง ฉันไม่แน่ใจว่าจะแก้ไขได้อย่างไร ข้อผิดพลาดร้ายแรง: ขนาดหน่วยความจำที่อนุญาตของ 134217728 ไบต์หมดลง (พยายามจัดสรร 64 ไบต์) ใน …

1
ทำไม Magento 2.1.0 ออกมาก่อน 2.0.9
Magento ได้เปิดตัว 2.1.0 ในวันที่ 23 มิถุนายน แต่ได้เปิดตัว 2.0.8 (กรกฎาคม) และ 2.0.9 (สิงหาคม) หลังจากนั้น ( https://github.com/magento/magento2/releases ) ทำไมพวกเขาถึงปล่อยเวอร์ชั่นที่ต่ำกว่า หากใครรู้เหตุผลกรุณาแจ้งให้เราทราบ ฉันได้อัปเกรดเป็น 2.1.0 แล้วและจะมีการเผยแพร่ใหม่เหล่านี้

3
Magento 2: ปลั๊กอินก่อน / หลัง / หลังการโต้ตอบ
ใน Magento 2 เมื่อคุณสร้างปลั๊กอิน "รอบ" public function aroundRenderResult( \Magento\Framework\Controller\ResultInterface $subject, \Closure $proceed, ResponseHttp $response ) { //... $proceed($response); //... } คุณสามารถดำเนินการต่อไปปลั๊กอินรอบต่อไปปิดท้ายด้วยการเรียกวิธีการเดิมที่เกิดขึ้นจริงโดยการเรียก / อัญเชิญผ่านใน$proceedวิธีการ นี่เป็นรูปแบบการออกแบบทั่วไปที่มักพบในการใช้มิดเดิลแวร์ PHP Frameworks อย่างไรก็ตาม - มันนำเสนอความสับสนโดยไม่มีข้อมูลการใช้งาน เฉพาะ หากนอกเหนือไปจากaroundPluginวัตถุ / คลาสยังมีการกำหนดbeforeหรือafterปลั๊กอินเมื่อใดพวกมันจะเริ่มสัมพันธ์กับสายโซ่ของปลั๊กอิน คือวิธีทั้งหมดก่อนที่จะยิงก่อนที่จะมีวิธีการใด ๆ ไฟปลั๊กอิน? หรือก่อนที่ปลั๊กอินจะยิงก่อนที่ไฟสุดท้ายจะเกิดขึ้นจริงหรือไม่ ปัญหาเฉพาะฉันพยายามที่จะติดตามลงคือผมไม่สามารถดูเหมือนจะได้รับปลั๊กอินที่ติดอยู่กับวิธีการจัดส่งที่ควบคุมวีโอไอพี 2 หน้าเมื่อวีโอไอพีในโหมดแคชเต็มหน้า แคชเต็มหน้าดำเนินการโดยปลั๊กอินรอบ ๆ ที่ไม่ได้$proceed($response)โทร ฉันได้ลองขุดลงในโค้ดบางส่วนรอบ ๆ ปลั๊กอินเหล่านี้และพบว่าระบบนั้นยากที่จะให้เหตุผลโดยไม่ทราบว่าปลั๊กอินนั้นทำงานอย่างไร ie - คำอธิบายในหน้าเอกสาร devจะปรากฏขึ้นในอินสแตนซ์ที่เฉพาะเจาะจงนี้อันใดอันหนึ่งที่ไม่ถูกต้อง …

5
ทำไมหนึ่งไม่สามารถเปลี่ยนกลับไปเป็นโหมดเริ่มต้นบน Magento 2 ได้?
ดังนั้นฉันจึงเปลี่ยนเป็นโหมดผู้พัฒนาในขณะที่พัฒนาโครงการ Magento 2 โดยใช้คำสั่งต่อไปนี้: php bin/magento deploy:mode:set developer ดีมากฉันได้รับข้อความนี้และฉันก็พัฒนาเว็บไซต์ให้ดี: โหมดแอปพลิเคชันปัจจุบัน: ผู้พัฒนา ด้วยเหตุผลบางอย่างฉันต้องการกลับไปที่defaultโหมดเพื่อตรวจสอบพฤติกรรมของเว็บไซต์ในโหมดนี้ ไม่มีเหตุผลเฉพาะที่บอกตามตรงฉันแค่อยากกลับไปใช้โหมดนี้ ดังนั้นฉันจึงรันคำสั่งต่อไปนี้: php bin/magento deploy:mode:set default แต่ฉันได้รับข้อผิดพลาดแปลก ๆ นี้โดยไม่มีคำอธิบายเพิ่มเติม: Cannot switch into given mode "default" ฉันตรวจสอบไฟล์ต่อไปนี้ที่จัดการการตั้งค่าโหมดMagento/Deploy/Console/Command/SetModeCommand.phpและนี่คือสิ่งที่ฉันพบ: switch($toMode) { case State::MODE_DEVELOPER: $modeController->enableDeveloperMode(); break; case State::MODE_PRODUCTION: if ($skipCompilation) { $modeController->enableProductionModeMinimal(); } else { $modeController->enableProductionMode(); } break; default: throw new LocalizedException(__('Cannot …

2
Magento2 สร้างส่วนขยายเฉพาะจากโรงงานและ ExtensionAttributeInterface ได้อย่างไร
ฉันต้องการห่อหัวของฉันไปรอบ ๆ โดยใช้คุณลักษณะส่วนขยายตัวอย่างเช่นสำหรับรายการราคา ไม่มีปัญหาในการเพิ่มแอตทริบิวต์ที่กำหนดเองให้กับเอนทิตี้ดังกล่าวโดยใช้คลาสการตั้งค่าเช่นเดียวกับใน Magento 1 นี่ไม่ใช่สิ่งที่คำถามนี้เกี่ยวกับ ในขณะที่เวทย์มนตร์ครอบงำฉันเมื่อฉันต้องการที่จะเปิดเผยคุณลักษณะดังกล่าวที่ถูกเพิ่มโดยส่วนขยายผ่านเอนทิตี API เป็นแอตทริบิวต์ส่วนขยาย ปรับปรุง : ฉันรู้วิธีการสร้างโรงงานปกติ คำถามนี้เกี่ยวกับโรงงานพิเศษที่สร้างอินสแตนซ์ของการใช้งานที่สร้างขึ้นสำหรับอินเตอร์เฟสส่วนขยายที่สร้างขึ้น นี่คือขั้นตอนที่ฉันต้องทำเพื่อให้มันใช้ได้ ฉันกำลังเพิ่มสิ่งเหล่านี้ดังนั้นผู้ที่พยายามตอบคำถามไม่จำเป็นต้องลงรายละเอียดเหล่านั้น คำถามของฉันคือวิธีการหรือทำไมมันทำงาน ขั้นตอนในการเปิดเผยแอตทริบิวต์ส่วนขยายผ่านเอนทิตี API: สร้างetc/extension_attributes.xmlที่เพิ่มคุณสมบัติให้กับส่วนติดต่อนิติบุคคล สร้างปลั๊กอินเพื่อเพิ่มค่าคุณลักษณะให้กับExtensionAttributesอินสแตนซ์เอนทิตี ในการทำจุดที่สองExtensionAttributesจำเป็นต้องใช้อินสแตนซ์เอนทิตี ด้วยเหตุนี้ปลั๊กอินจึงขึ้นอยู่กับโรงงานซึ่งตัวจัดการวัตถุส่งผ่าน DI สำหรับตัวอย่างรายการที่Magento\Quote\Api\Data\CartItemExtensionFactoryจะต้องมีการใช้ ฉันเดาว่าประเภทของโรงงานนี้จะต้องเป็นตัวกระตุ้นให้เกิดเวทย์มนตร์ วีโอไอพีจะสร้างส่วนต่อประสานการจับคู่\Magento\Quote\Api\Data\CartItemExtensionInterfaceกับ setters และ getters สำหรับคุณลักษณะส่วนขยายทั้งหมด อย่างไรก็ตามดูเหมือนจะไม่สร้างการใช้งานที่เป็นรูปธรรมสำหรับอินเทอร์เฟซนั้น ที่ให้เช่า PHPS รูปแบบไม่เห็น วีโอไอพีรวบรวมข้อมูลที่จำเป็นในการสร้างชั้นเรียนได้อย่างไร? วิธีการอินเตอร์เฟสที่สร้างขึ้นสามารถถูกเรียกบนอินสแตนซ์ที่เป็นรูปธรรมได้อย่างไร มันเป็นคลาสที่เพิ่งถูกสร้างขึ้นในหน่วยความจำเท่านั้น? ฉันมีความสุขที่ได้ผล แต่ก็ไม่เป็นที่น่าพอใจ ความสามารถของ Magentos ในการใช้คุณสมบัติที่สร้างขึ้นโดยอัตโนมัติโดยส่วนขยายเป็นปัจจัยสำคัญประการหนึ่งต่อความสำเร็จ ในฐานะนักพัฒนาโมดูลฉันเชื่อว่าฉันต้องเข้าใจกระบวนการทั้งหมดอย่างถี่ถ้วน ฉันควรจะมีเวลาหรือเปล่าที่ฉันจะขุดมันด้วยตัวเอง แต่ฉันอยากได้ถ้าฉันจะได้รับคำอธิบาย UPDATE 2 : เอาเวลาน้อยในการอ่านและ\Magento\Framework\Api\Code\Generator\ExtensionAttributesInterfaceGenerator …

14
Magento 2 Allowed Memory หมดข้อผิดพลาดเมื่อรวบรวมรหัส
ฉันมีข้อผิดพลาดเมื่อฉันเพิ่มโมดูล .. โปรดเรียกใช้คำสั่งรวบรวมวีโอไอพีอีกครั้ง ดังนั้นฉันจึงรันคำสั่งด้านล่าง แต่ยังแสดงข้อผิดพลาดที่ด้านล่างเมื่อรันคำสั่งจากรูต php magento setup: di: compile Compilation was started. %message% 0/7 [>---------------------------] 0% 1 sec 37.0 MiB%message% 0/7 [> ---------------------------] 0% 1 sec 37.0 MiBProxies code generation... 0/7 [ >---------------------------] 0% 1 sec 37.0 MiB Proxies code generation... 1/7 [====>-----------------------] 14% 47 secs 43.5 MiB Repositories …

3
เกิดข้อผิดพลาดหลังจากอัพเกรดวีโอไอพี
หลังจากยิงคำสั่งนี้ใน CLI php bin/magento setup:upgrade ฉันพบข้อผิดพลาดด้านล่าง -: Fatal error: Uncaught exception 'Magento\Framework\Exception\LocalizedException' with message 'Can't create directory /var/www/html/magento/magento2.0/var/generation/Magento/Framework/App/ResourceConnection/.' in /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator.php:103 Stack trace: #0 /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator/Autoloader.php(35): Magento\Framework\Code\Generator->generateClass('Magento\\Framewo...') #1 [internal function]: Magento\Framework\Code\Generator\Autoloader->load('Magento\\Framewo...') #2 [internal function]: spl_autoload_call('Magento\\Framewo...') #3 /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Reader/ClassReader.php(19): ReflectionClass->__construct('Magento\\Framewo...') #4 /var/www/html/magento/magento2.0/vendor/magento/framework/ObjectManager/Definition/Runtime.php(44): Magento\Framework\Code\Reader\ClassReader->getConstructor('Magento\\Framewo...') #5 /var/www/html/magento/magento2.0/vendor/magento/framework/ObjectMana in /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator.php on line 103`

4
Theming for Magento 2 - เริ่มจากศูนย์
บางท่านอาจอ่านหัวข้อที่เกี่ยวกับหัวข้อตั้งแต่เริ่มต้นสำหรับ Magento 1: รูปแบบ- เริ่มจากศูนย์ ฉันสงสัยว่าอะไรจะเป็นวิธีปฏิบัติที่ดีที่สุดในการพัฒนาธีมตั้งแต่เริ่มต้นสำหรับ Magento 2 คุณสร้างโดยใช้ native lumaหรือblanktheme หรือไม่ หรือสิ่งอื่นใด คุณใช้ส่วนขยายใด ๆ เพื่อช่วยพัฒนาธีมของคุณหรือไม่? คุณทำตามขั้นตอนใดเมื่อพัฒนาธีมตั้งแต่เริ่มต้น

3
ฉันจะเปลี่ยนขนาดรูปภาพเริ่มต้นของผลิตภัณฑ์ใน Magento 2 ได้อย่างไร
ในmagento 1.xxเราสามารถเปลี่ยนภาพย่อขนาดเริ่มต้นในผู้ดูแลระบบ: ระบบ> การกำหนดค่า> แคตตาล็อก แต่ในmagento 2.0ฉันจะเปลี่ยนค่าเหล่านี้ได้อย่างไรฉันไม่สามารถหาค่าคอนฟิกที่อนุญาตได้ ปัญหาคือภาพผลิตภัณฑ์ของฉันแสดงเป็นแถบสีขาวขนาดใหญ่และฉันต้องการจะป้องกันสิ่งนี้

2
Magento 2: ประโยชน์ของการใช้ส่วนประกอบกริด UI บน Grid.php มาตรฐานคืออะไร
Magento 2 ได้แนะนำส่วนประกอบของ UI หนึ่งในนั้นคือ UI Component Grid (คุณสามารถหาข้อมูลเพิ่มเติมได้ที่นี่: คำอธิบายของ UI Component Grid ใน Magento 2 ) เมื่อสร้างโมดูลที่กำหนดเองฉันติดกับวิธี Magento 1 เก่าฉันได้สร้างGrid.phpไฟล์ที่จัดการกริด adminhtml ของฉัน ฉันสงสัยว่าประโยชน์ของการใช้กริดส่วนประกอบ UI แทนGrid.phpวิธีการคืออะไร?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.