【发布时间】:2023-03-28 05:32:01
【问题描述】:
我正在尝试通过电子邮件功能在页面管理员的仪表板中实现对用户的搜索。目前,我已经将一个值硬编码到 $email 变量中,只是为了测试搜索是否有效。它确实找到了正确的用户,但没有在树枝中显示任何内容。
执行 {{ dump() }} 输出:array:2 [▼ 0 => User {#4745 ▼ -id: 5 - 用户名:“test_user” -plainPassword:空 -password: “$2y$13$rGYteIrzifg9Dty.O5knOOCHQnzOtF.nZux8h1jc4sNbap5V7Xn0。” -电子邮件: "tester@test.com" } "app" => AppVariable {#2617 ▶} ]
我在 AdminController.php 中使用的函数:
/**
* @Route("/admin/result", name="user_search")
* Method({"POST"})
*/
public function user_search(Request $request)
{
$email = 'tester@test.com';
$result = $this->getDoctrine()
->getRepository(User::class)
->findOneBy(['email' => $email]);
if ($result) {
return $this->render('admin/result.html.twig', $result);
}else{
return $this->render('admin/result.html.twig', [
'error' => 'No user found with this email '.$email]);
}}
result.html.twig:
{% extends 'base.html.twig' %}
{% block body %}
{% if error %}
<span class="error">{{ error }}</span>
{% endif %}
{% if result %}
<table>
<tr>
<th>Username</th><th>Email</th>
</tr>
{% for item in result %}
<tr>
<td>{{ item.getUsername }}</td><td>{{ item.getEmail }}
</td>
</tr>
{% endfor %}
</table>
{% endif %}
{{ dump() }}
{% endblock %}
【问题讨论】:
-
尝试使用 {% if result is defined %}
-
@D.Dimitrov 谢谢,这解决了部分问题。现在我得到了渲染的树枝,但显然 $result 总是未定义的。
-
您能否编辑或发布 {{ dump() }} 在您的 twig 文件中输出的内容?
-
@D.Dimitrov dump() 的输出是:array:2 [▼ "error" => "No user found with this email test@tester.com" "app" => AppVariable { #2617 ▶} ]
-
如果你启用了调试模式,你能看到数据库到底准备了什么查询吗?或者你有什么错误?
标签: php symfony twig php-7 symfony4