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 中直接访问当前用户
使用 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 }}