将控制器嵌入模板

时间:2019-06-17 19:39:22

标签: php fosuserbundle symfony4

我有一个名为UserController的控制器,其中包含1个列出网站上所有活动用户的方法:

<?php
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class UserController extends Controller
{

    public function whoIsOnlineAction()
    {
        $users = $this->getDoctrine()->getManager()->getRepository('App\\Entity\\User::class')->getActive();
        //return new Response(array('users' => $users));
        return $this->render('bundles\\FOSUserBundle\\layout.html.twig', ['users' => $users]);
        //return array('users' => $users);
    }
}

我正在尝试将控制器嵌入在layout.html.twig模板上。可以在template / bundles / FOSUserBundle文件夹中找到此模板,该模板包含:

{% extends 'base.html.twig' %}

{% block content %}
    {% for user in users %}
        {{ user.firstname }}
    {% endfor %}
{% endblock content %}

此模板扩展了base.html.twig模板,该模板可以在templates文件夹中找到,并包含以下内容:

<body>
        {% block content %}
        {{ render(controller('App\\Controller\\UserController:whoIsOnlineAction')) }}

        {% endblock content %}
</body>

当我进行测试时,出现以下错误: 变量“用户”不存在。

0 个答案:

没有答案