symfony2从OneToMany实体TWIG输出数据

时间:2014-08-30 16:38:53

标签: php symfony doctrine-orm doctrine

当我尝试输出与任务相关联的所有附件(附件实体)时,我得到以下异常。但我不知道为什么。

  

在呈现模板期间抛出异常(“通知:未定义的索引:/Applications/MAMP/htdocs/Seotool/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php行中的任务1753“)在/Applications/MAMP/htdocs/Seotool/src/Seotool/MainBundle/Resources/views/Task/load_task.html.twig第10行。

TWIG:

{{ tasks.taskDescription }}
{% for attachment in tasks.Attachments %}
    {{ attachment.id }}
{% endfor %}

控制器:

/**
@Route(
 *     path = "/tasks/load/{id}",
 *     name = "load_task"
 * )
 * @Template()
 */
public function load_taskAction($id, Request $request)
{

    $tasks = $this->getDoctrine()
        ->getRepository('SeotoolMainBundle:Task')
        ->find($id);

    return array(
        'tasks' => $tasks
    );

}

任务实体:

/**
 * @ORM\OneToMany(targetEntity="Attachments", mappedBy="task",cascade={"persist"})
 */
protected $attachments;

附件实体:

/**
 * @ORM\ManyToOne(targetEntity="Task", inversedBy="attachments")
 * @ORM\JoinColumn(name="task", referencedColumnName="id")
 */
protected $Task;

1 个答案:

答案 0 :(得分:1)

mappedBy="task"

可能应该是

mappedBy="Task"

或更好的Task属性应该以小写字母开头,这是更标准的方法。在这种情况下,您应该更改此引用:

targetEntity="Task"