3

作成した管理グリッドから実行するカスタムアクションを作成しようとしています。グリッド内の列からgetまたはpostを介してコントローラーに値を送信することは可能ですか?

グーグルを試しましたが、適切な説明がどこにも見つかりません。列設定(「getter」、「type」など)の説明へのリンクも、これが利用可能な場合に役立ちます。

4

1 に答える 1

11

次のコードを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>場所のようになります。 valuegetId()

getterフィールドは、標準のMagentoマジックゲッターのいずれかを実行します。つまり、すべての属性はgettableです。したがって、必要に応じてgetName、またはgetProductUrl必要getIsLeftHandedに応じて、コントローラーが属性を解析できます。

次に、コントローラーは、以下を使用して、渡された値を取得できます。Mage::app()->getRequest()->getParam('attributename');

ドキュメント/チュートリアルに関しては、@AlanStormのWebサイトでこの記事を読んでください。

HTH、
JD

于 2011-04-20T11:49:03.130 に答える