【问题标题】:symfony2 output data from OneToMany entity TWIGsymfony2 从 OneToMany 实体 TWIG 输出数据
【发布时间】:2014-08-30 16:38:52
【问题描述】:

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

在渲染模板期间引发了异常(“注意:未定义索引:/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 行。

树枝:

{{ 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;

【问题讨论】:

  • 更改受保护的 $Task;受保护的$task;您可能会在树枝行中遇到另一个错误: {% for attachment in tasks.Attachments %} 将其更改为 {% for attachment in tasks.attachments %}
  • 谢谢,现在可以了:)
  • 不客气 :)。在你的 addAttachment() 方法中更改 $Task 之前它是否正常工作?
  • 现在一切都好。在我的 Attachments.php 中是 @setTask 这个: $this->Task = $task;但它必须是 $this->task = $task;现在一切正常。

标签: php symfony doctrine-orm doctrine


【解决方案1】:
mappedBy="task"

应该是

mappedBy="Task"

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

targetEntity="Task"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    相关资源
    最近更新 更多