Php 将渲染传递给我新创建的服务-Symfony
拜托,我对symfony是新手,我好像没办法做到这一点。我创建了一个简单的服务,它将检查用户状态是否为活动或已删除,如果是,则将其从应用程序中注销。我已经创建了有效的代码,然后我想成为一个坏蛋,并创建一个可以做到这一点的服务。但是没有。所以,我创建了一个服务,它打印出结果,所以它被注册并开始工作。问题是,我想我无法将控制器中的变量应用到我的服务类中。代码如下:Php 将渲染传递给我新创建的服务-Symfony,php,symfony,controllers,Php,Symfony,Controllers,拜托,我对symfony是新手,我好像没办法做到这一点。我创建了一个简单的服务,它将检查用户状态是否为活动或已删除,如果是,则将其从应用程序中注销。我已经创建了有效的代码,然后我想成为一个坏蛋,并创建一个可以做到这一点的服务。但是没有。所以,我创建了一个服务,它打印出结果,所以它被注册并开始工作。问题是,我想我无法将控制器中的变量应用到我的服务类中。代码如下: <?php namespace WebBundle\Roles; class Roles { public function
<?php
namespace WebBundle\Roles;
class Roles
{
public function getApplicationId($loggedUser, $request)
{
// Get the current user role
/** @var $userRole array */
$userRole = $loggedUser->getRoles();
// Check if the user role is super admin or admin - client
/** @var $superAdmin bool */
$superAdmin = in_array('ROLE_SUPER_ADMIN', $userRole) ? true : false;
$admin = in_array('ROLE_ADMIN', $userRole) ? true : false;
if ($superAdmin) {
/** @var $application int */
$application = $request->get('application');
} elseif ($admin) {
/** @var $application int */
$application = $loggedUser->getAppClient()->getId();
}
return $application;
}
public function logoutInactiveAndDeletedUsers($loggedUser)
{
// Log out inactive or deleted users.
if ($loggedUser->getStatus()->getStatus() == 'inactive' || $loggedUser->getStatus()->getStatus() == 'deleted' ) {
//$this->get('security.context')->setToken(null);
//var_dump('test');exit;
return $this->container->render('WebBundle:Default:login.html.twig', array('last_username' => null, 'error' => null,));
}
}
}
及
但如果我把这段代码放在控制器中,它会工作得很好。它会销毁令牌并将用户重定向到登录页面。请帮助我了解如何使其作为服务工作。好的,我知道如何调用视图: 在services.yaml中添加模板作为参数
arguments: [@templating]
然后创建属性并将其分配给构造函数:
private $templating;
public function __construct($templating)
{
$this->templating = $templating;
}
这样称呼它:
$this->templating->render('WebBundle:Default:login.html.twig', array('last_username' => null, 'error' => null,));
现在我需要找到一个解决方案,如何为用户禁用令牌。如果有人知道的话,帮帮我,伙计(我不再吸毒了)
private $templating;
public function __construct($templating)
{
$this->templating = $templating;
}
$this->templating->render('WebBundle:Default:login.html.twig', array('last_username' => null, 'error' => null,));