2011-04-20 82 views
2

我正在尝试编写一个自定义操作来运行我已经构建的管理网格。是否可以通过get或post从网格中的列向控制器发送一个值?Magento管理网格将数据从Action发送到控制器

我试过Google搜索,但我无法在任何地方找到合适的解释。如果可用,则对列设置(“getter”,“类型”等)的解释的链接也是有用的。

回答

9

将此代码添加到您的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, 
    )); 

,将建立与所选行的id的“编辑” URL作为URL的一部分。它看起来像<frontname>/<controllername>/edit/id/<value>,其中value由获取者getId()返回。

getter字段将执行任何标准的Magento魔术获得者,即任何属性都是可以获得的。所以你可以有getNamegetProductUrlgetIsLeftHanded如果你想和你的控制器可以解析属性。

控制器就可以检索使用Mage::app()->getRequest()->getParam('attributename');

在文档/教程的术语,其传递的值,有this article读@AlanStorm的网站上,因为它可能会有所帮助。

HTH,
JD

+0

感谢您的帮助,这几乎是所有我需要知道。我没有意识到你可以使用'getter'来挑选任何属性。 – Geoff 2011-04-20 12:27:55

+0

吸气剂对我来说也是新的,但正是我所需要的。 – 2012-10-04 03:26:51

+0

如果我想获得多个getter方法怎么办如果我想在URL中传递多个不能访问的参数,可以使用Mage :: app() - > getRequest() - > getParam('attributename') – shashank 2016-02-02 13:10:19

相关问题