2012-07-21 14 views
6

Denetleyici ön gönderim olayında kontrol edebildiğim belirli bir duruma bağlı olarak farklı bir eylemi (aynı denetleyicide) iletmek mümkün mü?Magento - ön gönderim denetçisinden farklı denetleyici eylemini iletmek için

Yani örneğin - çalıştırılmak üzere yaklaşık aksiyon i belli koşul doğruysa, ben farklı bir eylem çalıştırmak istiyorum, ön sevk olay için bir gözlemci oluşturursanız indeksi

demek olduğunu: olarak MyAction indexAction

cevap

7

'un tersi Bir ön gönderme kancası içinde aşağıdaki yöntem olarak bir şey yapabilirsiniz.

public function yourMethod($observer) 
{ 
    if ($condition) { 
     $request = Mage::app()->getRequest(); 
     $request->initForward() 
      ->setControllerName('controllername') 
      ->setModuleName('modulename') 
      ->setActionName('actionname') 
      ->setDispatched(false); 

     return false; 
    } 
} 

rağmen, neden olmasın, her zaman rota bir özel kontrolörü ile çalışıyorsanız, örneğin, indexAction()? Ve bu yöntemde, kalpesh'in cevabında bahsettiği gibi, sonraki (_forward() için nereye gitmek istediğinizi anlamaya çalışın)? Performans bilge hiçbir fark yoktur.

İlgili konular