Symfony 4 - FOSUserBundle - 自定义路由模板

Symfony 4 - FOSUserBundle - Template on custom route

使用 FOSUserBundle 的 Symfony 4 应用。

我已经为用户个人资料创建了自定义子路由(例如 profile/bookings),并且我已经向用户实体(firstName 和 lastName)添加了一些自定义字段。

如果我在自定义路由(非 FOSUserBundle 路由)的 twig 模板中引用 {{ user.firstName }},我会收到 'User entity not found' 错误。

如何在 twig 模板中访问用户的属性?

当您渲染视图时,您可以从控制器中使用 render() 方法的第二个参数中的数组将数据传递给 twig 模板。

这个数组是这样使用的:array('TwigVariableName' => $someValue, 'AnotherTwigVariable' => $someOtherValue)

例如:

//This is a controller
public function bookings()
{
    //get the current user
    $user = $this->get('security.token_storage')
                 ->getToken()
                 ->getUser();

    //Or, simplier, since we are in a controller :
    $user = $this->getUser();

    return ($this->render('bookings.html.twig', array('user' => $user)));
}

正如 Cerad 在评论中所述,您可以使用 {{ app.user.firstName }}

在 Twig 中直接访问当前用户