【问题标题】:Call controller/action in event listener在事件监听器中调用控制器/动作
【发布时间】:2013-08-16 02:16:04
【问题描述】:

我想在用户登录时在后台运行一个进程。所以我在登录监听器中创建了一个进程。

这是我的代码。

public function onLogin(InteractiveLoginEvent $event)
    {
      $user = $event->getAuthenticationToken()->getUser();

      if($user)
      {
        $userid= $user->getId();
        echo $userid;
        $process = new Process('php d:wamp/www/jobologic/app/console JJJJ:RRRR'." ".$userid); 
        $process->start();

      }
    }

进程在后台启动后。我希望用户看到网站的主页。 $process->start()函数之后应该做什么?

【问题讨论】:

  • 重定向到首页...就是这样
  • 你能更准确一点吗?我真的是菜鸟。谢谢。 @User016

标签: php symfony controller listener


【解决方案1】:

如果您使用表单登录,您可以配置默认目标路径并使用以下配置强制它:

firewalls:
    myfirewall:
        # ...
        form_login:
            # ...
            always_use_default_target_path: true
            default_target_path:            /

配置参考:http://symfony.com/doc/current/reference/configuration/security.html

【讨论】:

  • 我还有一个问题是这样写的时候会重定向到首页。但是该过程不会在后台运行。你有什么想法?谢谢你帮助我
  • 它可能不会与主进程分离(所以当你的主请求完成时,你开始的进程会死掉)。这不是一件常见的事情。如果您需要异步进程,请使用消息/作业队列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-25
  • 2022-08-18
  • 2018-11-20
  • 2021-07-02
  • 1970-01-01
相关资源
最近更新 更多