Magento 2 Controller Post抛出404错误

时间:2016-01-20 18:51:55

标签: php magento2

我在尝试向Magento 2中的现有路线添加新动作时遇到了问题。

我创建了一个新模块,注册了它并创建了一个新的操作,扩展了现有的添加到购物车功能。我有一个在现有项目上工作,但不得不将其移植到新安装。现在当我尝试POST到路径:<magentourl>/checkout/cart/addbulk时,它会抛出404.GET请求将命中execute方法并创建日志条目。

以下是该模块的组成部分。

应用程序/代码/测试/结帐的/ 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>

应用程序/代码/测试/结帐的/ etc /前端/ 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上它按预期创建日志条目。

有没有人知道为什么这个模块没有正确迁移,或者我需要添加其他任何东西来实现这个功能?

3 个答案:

答案 0 :(得分:0)

您是否在创建控制器后尝试此操作?

bin/magento setup:di:compile

或启用Developer mode

答案 1 :(得分:0)

原来环境本身被打破了。我成功地在全新安装的magento 2上安装了我的模块。

答案 2 :(得分:0)

bin/magento cache:disable

清除文件夹的内容

  

生成/编码   和   生成的/元数据

还要检查PHP-FPM或OPCACHE缓存。