Я столкнулся с проблемой, пытаясь добавить новое действие к существующему маршруту в Magento 2.
Я создал новый модуль, зарегистрировал его и создал новое действие, расширяющее существующую функциональность добавления в корзину. У меня это работало над существующим проектом, но мне пришлось перенести его на новую установку. Теперь, когда я пытаюсь выполнить POST по пути: <magentourl>/checkout/cart/addbulk
, он выдает ошибку 404. Запрос GET вызовет метод выполнения и создаст запись в журнале.
Ниже приведены компоненты модуля.
приложение/код/тест/оформить заказ/и т. д./module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Test_Checkout" schema_version="2.0.0" setup_version="2.0.3">
<sequence>
<module name="Magento_Checkout"/>
</sequence>
</module>
</config>
приложение/код/тест/оформить заказ/и т. д./интерфейс/routes.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
<route id="checkout" frontName="checkout">
<module name="Test_Checkout" />
</route>
</router>
</config>
приложение/код/Тест/Оформить заказ/Контроллер/Корзина/Addbulk.php
<?php
namespace Test\Checkout\Controller\Cart;
class Addbulk extends \Magento\Checkout\Controller\Cart\Add
{
public function execute()
{
$items = $this->getRequest()->getParam('item', []);
$this->_objectManager->get('Psr\Log\LoggerInterface')>addDebug('Posting data to addBulk');
...
return $this->_goBack();
}
}
Я включил модуль, запустил bin/magento setup:upgrade
, очистил кеш и попытался опубликовать. Когда я делаю POST, он возвращает ошибку 404, при GET он создает запись в журнале, как и ожидалось.
Кто-нибудь знает, почему этот модуль не был правильно перенесен, или что-то еще, что мне нужно добавить, чтобы это заработало?