我在一个
BaseController
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use App\Services\Authorize;
class BaseController extends Controller {
private $auth;
public function __construct(Authorize $auth){
$this->auth = $auth;
}
public function initBaseController() {
$this->auth->do_authorize();
}
}
以及
Authorize
服务如下所示:
namespace App\Services;
use Symfony\Component\HttpFoundation\RedirectResponse;
use App\Services\Session;
class Authorize {
private $session;
public function __construct(Session $session){
$this->session = $session;
}
public function do_authorize(){
if($this->session->validate('fake_token'){
return $this->redirectToRoute('login-portal');
}
}
}
因此,我们的想法是使用
如果会话不存在或使用无效,则重定向到登录页
但是重定向行抛出了一个错误,尽管这是
symfony docs
关于这个话题。
我相信这是因为我试图从服务中重定向,而不是从控制器中重定向。
如何从服务中重定向?