【问题标题】:Magento Custom Grid delete action not workingMagento 自定义网格删除操作不起作用
【发布时间】:2015-11-19 03:22:33
【问题描述】:

我有 Magento 自定义网格,当有人单击删除操作时,它会显示我想要删除我的产品的产品列表。我已经编写了下面的操作代码,但是每次单击删除时它都无法正常工作,当我使用 url (*/*/delete) 时,它会显示 404 页面,当我将 url 更改为 (*/*/../../admin/catalog_product/delete) 时,它会转到仪表板页面,但没有t 删除我的产品:

$this->addColumn('action',
            array(
                'header'    => 'Action',
                'width'     => '100px',
                'type'      => 'action',
                'getter'    => 'getId',
                'actions'   => array(
                    array(
                        'url'       => array('base'=> '*/*/edit'),
                        'field'     => 'id'
                    )
                )
            )
        )

任何解决我这个问题的方法都会对我有帮助。

【问题讨论】:

    标签: php magento zend-framework magento-1.9


    【解决方案1】:

    我认为问题出在网址制作上,请尝试按照以下操作制作网址。

    注意:根据您的 url perameter 替换 param_id,并根据 helper 中的模块名称替换模块名称。

     'actions'   => array(
                            array(
                            'caption' => Mage::helper('module_name')->__('Edit'),
                            'url'     => array(
                            'base'=>'*/*/edit',
                            'params'=> array('id'=>$this->getRequest()->getParam('param_id'))
                            ),'field'   => 'id'
                            ),
    
                            array(
                            'caption' => Mage::helper('module_name')->__('Delete'),
                            'url'     => array(
                            'base'=>'*/*/delete',
                            'params'=> array('id'=>$this->getRequest()->getParam('param_id'))
                            ),'field'   => 'id'
                            )
    
                            ),
    

    【讨论】:

    • 我正在这样做 getParam('*/*/../../admin/catalog_product/delete') 这也不起作用,或者我做错了什么。
    • 嗨,安德鲁,在 getParam 中,您必须定义模块的主键,这将有助于识别您要删除的记录。所以尝试像'params'=> array('id'=>$this->getRequest()->getParam('primary_key'))。遵循我定义的上述操作,我相信这对你有用。
    • 在定义上述代码后,确保您在模块的管理端控制器中定义了 deleteAction() 方法。
    • 谢谢...不使用参数也可以工作...我只需要在控制器中定义deleteaction()
    • @AndrewHall :如果您觉得答案有帮助,请考虑投票或接受答案。
    【解决方案2】:

    您还没有创建删除操作,请尝试将上面的代码修改为:

    $this->addColumn('action',
                array(
                    'header'    => 'Action',
                    'width'     => '100px',
                    'type'      => 'action',
                    'getter'    => 'getId',
                    'actions'   => array(
                        array(
                            'url'       => array('base'=> '*/*/edit'),
                            'field'     => 'id'
                        ),
                        array(
                            'url'       => array('base'=> '*/*/delete'),
                            'field'     => 'id'
                        )
                    )
    

    【讨论】:

    • 这不起作用...当我单击它时,会打开一个空白页面...因为产品也没有被删除
    猜你喜欢
    • 2021-09-09
    • 2016-09-23
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    相关资源
    最近更新 更多