Сетка администратора Magento отправляет данные из Action в Controller

Я пытаюсь написать пользовательское действие для запуска из созданной мной административной сетки. Можно ли отправить значение из столбца в сетке контроллеру через получение или отправку?

Я пробовал гуглить, но нигде не могу найти правильного объяснения этому. Ссылка на объяснение настроек столбца («геттер», «тип» и т. д.) также будет полезна, если она доступна.


person Geoff    schedule 20.04.2011    source источник


Ответы (1)


Добавьте этот код в свой 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-адрес «Редактировать» с идентификатором выбранной строки как часть URL-адреса. Это будет выглядеть примерно так: <frontname>/<controllername>/edit/id/<value>, где value возвращается геттером getId().

Поле геттера будет выполнять любой из стандартных магических геттеров Magento, т.е. любой атрибут доступен для получения. Таким образом, вы могли бы иметь getName или getProductUrl или getIsLeftHanded, если хотите, и ваш контроллер может анализировать атрибут.

Затем контроллер может получить это переданное значение, используя Mage::app()->getRequest()->getParam('attributename');

Что касается документации/учебников, прочтите эту статью на веб-сайте @AlanStorm, она может вам помочь.

HTH,
JD

person Jonathan Day    schedule 20.04.2011
comment
Спасибо за помощь, это почти все, что мне нужно было знать. Я не знал, что вы можете использовать «геттер», чтобы выбрать практически любой атрибут. - person Geoff; 20.04.2011
comment
Геттер для меня тоже новый, но именно то, что мне было нужно. - person Jim OHalloran; 04.10.2012
comment
Что, если я хочу получить более одного геттера, означает, что если я хочу передать несколько параметров в URL-адресе, доступ к которому невозможен, используя Mage::app()->getRequest()->getParam('attributename') - person shashank; 02.02.2016
comment
Должен ли я использовать getter=›array('attribute1',attribute2); - person shashank; 02.02.2016