2011-05-10 36 views
0


我在這裏很困難。我試圖在Ajax Action中包含EventDispatcher,但它只是悄然失敗。我對symfony非常陌生,目前正致力於基於symfony 1.1.6的「VImp」CMS(http://vimp.com/)的定製工作。
/apps/xx/modules/xx/actions/base/BaseXxActions.php有這樣的:呼叫所有Symfony編碼:New-B的EventDispatcher悄然失敗

public function executeAjax { 
    switch($this->getVar('action')) { 
     case 'something': 
      sfContext::getInstance()->getEventDispatcher()->notify(
       new sfEvent(
       $this, 
       'activity', 
       array(
        'action' => 'user.something.save', 
        'user' => sfContext::getInstance()->getUser()->getUser(), 
        'something'=>$something 
       ) 
      ) 
      ); 
     break;  
    } 
} 

現在,這只是靜靜地什麼也不做。服務器或symfony日誌中沒有任何內容。我幾乎只是複製/粘貼更早的幾行文字,並且這似乎無關緊要。
有人可以幫我嗎?我在哪裏以及如何獲得有關爲何失敗的具體信息?
謝謝,
托馬斯
(我也不能得到語法高亮工作...)

+1

那麼,究竟是什麼失敗了,在哪裏?此外,標題爲「呼叫所有Symfony編碼:新B」的含義是什麼? :)你想打電話給所有的symfony代碼並收集他們的電話號碼? :))) – 2011-05-10 11:54:03

+0

你確定你的ajax調用實際上是被解僱嗎?另請參閱apache日誌,查看是否在啓動ajax調用後發出一些請求 – roirodriguez 2011-05-10 11:54:27

+0

您是否嘗試過調試您的ajax請求? Xdebug + firefox的插件(easyXdebug)非凡。 – Dziamid 2011-05-10 12:02:27

回答

0

,以防有人曾經面臨着同樣的問題...我終於找到了我的解決方案:

class frontendConfiguration extends sfApplicationConfiguration 
{ 
    public function configure() 
    { 
     // Register our listener 
     $this->dispatcher->connect('user.something.save', array('myClass', 'itsMethod')); 
    } 
} 

這告訴事件調度員在事件被觸發時應該做什麼。