Я хочу отобразить список активных пользователей.Я использую FOSUserBundle в моем проекте.Я создаю поле в своей пользовательской таблице, которое будет содержать дату и время последней активности пользователя, и я создал прослушиватель:
class ActivityListener
{
protected $tokenStorage;
protected $userManager;
public function __construct(TokenStorage $tokenStorage, UserManagerInterface $userManager)
{
$this->tokenStorage = $tokenStorage;
$this->userManager = $userManager;
}
/**
* Update the user "lastActivity" on each request
* @param FilterControllerEvent $event
*/
public function onCoreController(FilterControllerEvent $event)
{
// Check that the current request is a "MASTER_REQUEST"
// Ignore any sub-request
if ($event->getRequestType() !== HttpKernel::MASTER_REQUEST) {
return;
}
// Check token authentication availability
if ($this->tokenStorage->getToken()) {
$user = $this->tokenStorage->getToken()->getUser();
if ( ($user instanceof UserInterface) && !($user->isActiveNow()) ) {
$user->setLastActivityAt(new \DateTime());
$this->userManager->updateUser($user);
}
}
}
}
На моем контроллере:
class UserController extends Controller
{
/*
* @Template()
*/
public function whoIsOnlineAction()
{
$users = $this->getDoctrine()->getManager()->getRepository('App:User')->getActive();
return array('users' => $users);
}
}
На моем шаблонеЯ добавил эту строку:
{{ render(controller('App\\Controller\\UserController:whoIsOnlineAction')) }}
Но когда я пытаюсь войти в систему как простой пользователь, я получаю эту ошибку: Возникла исключительная ситуация во время рендеринга шаблона («Контроллер должен вернутьобъект "Symfony \ Component \ HttpFoundation \ Response", но он возвратил массив ([users => ...]). ").