2011-05-10 101 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')); 
    } 
} 

这告诉事件调度员在事件被触发时应该做什么。