0

ボタンをクリックして注文状態を変更する必要があります。これまでのところ、私はこれを行ってきました:

<?php $_order = $this->getOrder() ?>
<div class="buttons-set">
<p class="btn"><a href="<?php $this->saveState($_order);?>">Button</a></p>
</div>

私のphpには次のものがあります:

public function saveState($order)
{
   return $order->setState(Mage_Sales_Model_Order::STATE_NEW, true);
}

問題は、phtml が読み込まれるたびに saveState 関数が実行され、注文状態が毎回変更されるため、理由がわからないことです。ボタンがクリックされた場所で saveState 関数を実行する必要があります。これで私を助けてください、私は本当に立ち往生しています! ありがとう

4

1 に答える 1

0

<a href="<?php $this->saveState($_order);?>">Button</a>saveState()メソッドにリンクしません。メソッドをすぐに実行saveState()し、 の戻り値にリンクするsaveState()だけです。この場合、それはsales/orderオブジェクトの文字列表現になると思います。

あなたがする必要があるのは、次のようなものを介して、リンクできるアクションを持つコントローラーを作成することです

<a href="<?php
    echo Mage::getUrl('YourModule/YourController/YourAction')
?>">Button</a>

また、単純なリンクに「アクション」を含めることは一般的に悪い習慣と見なされることに注意してください。これはRESTfulではありません。

于 2012-09-20T20:34:02.253 に答える