symfony - 在 twig symfony 3.4 中获取当前用户 ID
问题描述
我在 Symfony 3.4 中使用 FosUserBundle 我想获取当前用户 ID 并将其在 URL 中从 twig 传递到另一个页面,这是我的代码:
<a href="{{ absolute_url(asset('')) }}app_dev.php/ajout/{{ event.id }}/{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %} {{ app.user.id|number_format }}
{% endif %}">Réserver</a>
但问题是我得到这样的网址
http://localhost/techeventsweb/web/app_dev.php/ajout/1/%202
id 是 '%202' 而它应该是一个整数 '2'
解决方案
当您的应用会话中有用户时,您可以使用以下命令从 Twig 获取所有用户信息:{{ app.user }}
然后,要获取用户 ID,请使用{{ app.user.id }}
一些备注,如果你真的想手动设置 url,这是最佳实践:
{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
{% set url = absolute_url(asset('')) ~ 'app_dev.php/ajout/' ~ event.id ~ '/' ~ app.user.id %}
{% else %}
{% set url = "OTHER_URL" %}
{% endif %}
<a href="{{ url }}">Réserver</a>
推荐阅读
- mongodb-query - MongoDB 中的位置 $ 运算符似乎不会更新多个文档
- python-3.x - 在 TensorFlow Federated 中创建自定义联合数据集
- c++ - 为什么编译后没有.o?
- sql-server - SQL Server 中创建的表变量在哪里?
- socket.io - 客户端 Socket.io 覆盖或处理断开连接事件
- haskell - 为什么 `catch` 没有捕捉到这个异常?
- android - 如果我在列表中有两个项目并单击删除按钮,为什么我的两个项目都被删除了?
- c# - C#/正则表达式模式适用于在线测试,但不适用于运行时
- winforms - 将数据从 winforms 发布到 mvc 控制器传递空值
- c++ - 从技术上讲,当我双击可执行文件时会发生什么