Magento административна мрежа, изпращаща данни от Action към Controller

Опитвам се да напиша персонализирано действие, което да стартира от администраторска мрежа, която съм изградил. Възможно ли е да се изпрати стойност от колона в мрежата до контролера чрез get или post?

Опитах да потърся в гугъл, но никъде не мога да намеря подходящо обяснение за това. Връзка към обяснение на настройките на колоната ("getter", "type" и т.н.) също би била полезна, ако е налична.


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().

Полето getter ще изпълни всеки от стандартните магически getters на Magento, т.е. всеки атрибут може да се получи. Така че бихте могли да имате getName или getProductUrl или getIsLeftHanded, ако желаете и вашият контролер може да анализира атрибута.

След това контролерът може да извлече тази предадена стойност с помощта на Mage::app()->getRequest()->getParam('attributename');

По отношение на документация/уроци, прочетете тази статия на уебсайта на @AlanStorm, тъй като може да помогне.

HTH,
JD

person Jonathan Day    schedule 20.04.2011
comment
Благодаря за помощта, това е почти всичко, което трябваше да знам. Не знаех, че можете да използвате "getter", за да изберете почти всеки атрибут. - person Geoff; 20.04.2011
comment
Гетерът също е нов за мен, но точно това, от което имах нужда. - person Jim OHalloran; 04.10.2012
comment
Ами ако искам да получа повече от един getter означава Какво, ако искам да предам няколко параметъра в URL адреса, който не може да бъде достъпен чрез Mage::app()-›getRequest()-›getParam('attributename') - person shashank; 02.02.2016
comment
Трябва ли да използвам getter=›array('attribute1',attribute2); - person shashank; 02.02.2016