为什么当我在php中编写测试时...
foreach ($rounds as $round){
$assignment = $em->getRepository(‘WorkBundle:Doc’)->findOneBy(array(
‘user’ => $user->getId(),
’whichRound’ => $round,
));
if (!$assignment){
echo “assign ”.$round. “ to user”;
}else{
echo “already assigned to ”.$round. “ to user”;
}
}
return array (
'user' => $user,
'assignment' => $assignment,
'rounds' => $rounds,
);
......它运作正常。当赋值为空时,它将输出“assign ”.$round. “ to user”;
,当它不为空时,它将输出“already assigned to ”.$round. “ to user”;
。
然而,当我使用上面返回的变量进入我的twig模板并执行...
{% for round in rounds %}
{% if assignment is null %}
<h2>{{ user }} successfully added to {{ round }}</h2>
{% else %}
<h2>{{ user }} has already been assigned to the {{ round }}</h2>
{% endif %}
{% endfor %}
......它无法正常工作?它将输出相同的消息两次...在一个例子中,如果第一轮为空而第二轮不为空,它将输出第二条消息{{ user }} has already been assigned to the {{ round }}
两次。
我搞砸了什么?
答案 0 :(得分:1)
当您在代码中浏览foreach循环时,每次都会设置folder_name.html
。当您返回数组时,您只返回 last 时间folder_name
已设置。
看起来$assignment
是一个数字数组,您希望将该轮与分配结果相关联。基于此,我建议建立一个像这样的新阵列:
$assignment
您的Twig模板将如下所示:
$rounds