我根据当前用户输出任务列表。
我的任务表如下所示:
ID | Task Title | User |
我还有一个名为“TaskDone”的第二个表
我将任务标记为特定用户的“完成”时存储。例如:
ID | Task ID | User ID |
1 | 13 | 3 |
当我现在输出用户ID 3的任务列表时,我得到一个分配给用户ID 3的所有任务的列表。但现在我想检查列表中是否有任务,其中有一个条目表“TaskDone”,用户ID =当前用户和任务ID =输出列表中任务的ID。
我的控制器看起来像这样:
/**
@Route(
* path = "/taskmanager/user/{id}",
* name = "taskmanager"
* )
* @Template()
*/
public function taskManagerAction($id)
{
$priorities = array(
0 => array('name' => 'Hoch', 'class' => 'high' ),
1 => array('name' => 'Normal', 'class' => 'normal' ),
2 => array('name' => 'Niedrig', 'class' => 'low' )
);
$all_tasks = $this->getDoctrine()
->getRepository('SeotoolMainBundle:Task')
->findAll();
$user = $this->getDoctrine()
->getRepository('SeotoolMainBundle:User')
->findAll();
return array(
'list_user' => $user,
'list_open_tasks' => $all_tasks,
'current_user' => $id,
'priorities' => $priorities,
);
}
我的任务列表输出如下:
{% for task in list_open_tasks if (task.user.id == current_user or task.user.id == "global") and task.taskPriority == priority.name %}
{{ task.taskTitle }}
# HERE I WANT TO CHECK IF THERE IS AN ENTRY IN TASKDONE TABLE FOR THIS TASK AND THIS USER
{% endfor %}
有没有人有想法?
答案 0 :(得分:0)
您需要在控制器中执行此操作!
此代码会将TaskDone
实体中的所有条目作为数组提供给您,其中user_id
与给定的$id
相同。
$tasks_done = $this->getDoctrine() ->getRepository('SeotoolMainBundle:TaskDone') ->findBy(array('user' => $id);
将结果保存在$tasksDone
之类的数组中,并将其返回到TwigTemplate。
return array(
'list_user' => $user,
'list_open_tasks' => $all_tasks,
'current_user' => $id,
'priorities' => $priorities,
'tasks_done' => $tasksDone
);
然后你就像任何其他Twig Variable
那样给出它们