Как визуализировать шаблон веточки внутри избирателя?
Я создал избирателя по имени
IsVerifiedVoter
. Внутри я хочу отрендерить страницу ветки.
Я старался
$this->container->get('templating')->renderResponse("notActive/disabled.html.twig");
Но это дает мне эту ошибку:
Примечание: свойство Undefined: App\Security\Voter\IsVerifiedVoter::$container
Я тоже пробовал
return $this->render("notActive/disabled.html.twig");
Но это дает мне эту ошибку:
Попытка вызвать неопределенный метод с именем "render" класса "App\Security\Voter\IsVerifiedVoter".
Итак, как я могу отобразить страницу ветки внутри моего избирателя?
Вот код моего избирателя:
<?php
namespace App\Security\Voter;
use App\Entity\User;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\Authorization\Voter\Voter;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
class IsVerifiedVoter extends Voter
{
public const ACTIVE = 'isActive';
protected function supports($attribute, $subject)
{
return $attribute === self::ACTIVE;
}
protected function voteOnAttribute($attribute, $subject, TokenInterface $token)
{
$user = $token->getUser();
if (($user instanceof User) and (!$user->isVerified() ) ) {
return $this->container->get('templating')->renderResponse("notActive/disabled.html.twig");
}
return true;
}
}
1 ответ
Нет смысла получать шаблон веточки внутри Voter, но получить шаблон веточки вне контроллера в любом классе, даже вне контроллера Voter:
use Twig\Environment;
class MyClassName
{
private $twig;
public function __construct(Environment $twig)
{
$this->twig = $twig;
}
public function myFunction()
{
// example
$temaplte = $this->twig->render('emails/send_password_token.html.twig');
}
}