Magento管理网格将数据从Action发送到Controller

时间:2011-04-20 10:26:17

标签: magento grid action adminhtml

我正在尝试编写一个自定义操作来运行我已构建的管理网格。是否可以通过get或post?

将网格中的列发送给控制器

我试过谷歌搜索,但我无法在任何地方找到适当的解释。如果可用的话,链接到列设置的解释('getter','type'等)也很有用。

1 个答案:

答案 0 :(得分:10)

将此代码添加到Grid.php:

        $this->addColumn('action',
            array(
            'header'    =>  Mage::helper('yourmodulename')->__('Action'),
            'width'     => '100',
            'type'      => 'action',
            'getter'    => 'getId',
            'actions'   => array(
                    array(
                            'caption'   => Mage::helper('yourmodulename')->__('Edit'),
                            'url'       => array('base'=> '*/*/edit'),
                            'field'     => 'id'
                    )
            ),
            'filter'    => false,
            'sortable'  => false,
            'index'     => 'stores',
            'is_system' => true,
    ));

这将构建一个“编辑”URL,其中所选行的Id作为URL的一部分。它看起来像<frontname>/<controllername>/edit/id/<value>,其中get value返回getId()

getter字段将执行任何标准的Magento魔法getter,即任何属性都是gettable。因此,如果您需要,您可以拥有getNamegetProductUrlgetIsLeftHanded,并且您的控制器可以解析该属性。

然后,控制器可以使用Mage::app()->getRequest()->getParam('attributename');

检索传递的值

在文档/教程方面,请阅读@AlanStorm网站上的this article,因为它可能有所帮助。

HTH,
JD