我遇到了尝试在Magento 2中的现有路线上添加新动作的问题。
我创建了一个新模块,对其进行了注册,并创建了一个新操作来扩展现有的添加到购物车功能。我在一个现有项目上进行了这项工作,但是不得不将其移植到新的安装中。现在,当我尝试发布到路径:<magentourl>/checkout/cart/addbulk
时,它将引发404。GET请求将命中execute方法并创建日志条目。
以下是模块的组件。
app / code / Test / Checkout / etc / 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>
app / code / Test / Checkout / etc / frontend / 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>
app / code / Test / Checkout / Controller / Cart / 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上它会按预期创建日志条目。
没有人知道为什么该模块无法正确迁移,或者我需要添加其他内容才能使此模块正常工作吗?
您在创建控制器后尝试过此方法吗?
bin/magento setup:di:compile
或启用Developer mode
?
证明环境本身已损坏。我已成功将模块安装在magento 2的全新安装上。
bin/magento cache:disable
清除文件夹的内容
应用程序/生成的/代码和应用程序/生成的/元数据。
还要检查PHP-FPM或OPCACHE缓存。