如何在Symfony中使用findAll()方法

时间:2013-09-30 15:05:38

标签: symfony doctrine

我在Symfony中有一个类/实体,我正在尝试使用findAll()方法从名为Event的表中获取所有内容:

$this->getDoctrine()->getManager()->getRepository('MYBUNDLE:Event')->findAll();

我收到此错误:

[Semantical Error] line 0, col 50 near 'e ': Error: Class 'e' is not
defined. 500 Internal Server Error - QueryException 1 linked

这是我的实体:

class Event 
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     *
     * @ORM\ManyToOne(targetEntity="Rposition")
     * @ORM\JoinColumn(name="id_Owner", referencedColumnName="id" )
     **/
    private $idOwner;

    /**
     * @var boolean
     *
     * @ORM\Column(name="repeats", type="boolean", nullable=true)
     */
    private $repeats;

导致此错误的原因是什么?我如何正确使用findAll()?

1 个答案:

答案 0 :(得分:2)

    $events = $this->getDoctrine()
        ->getRepository('AppBundle:Event')
        ->findAll();

    if (!$events) {
        throw $this->createNotFoundException(
            'No event found'
        );
    }

    return $this->render(
        'AppBundle:Event:index.html.twig',
        array('events' => $events)
    );

将其置于所需的控制器功能中。然后渲染Resource / views / Event / index.html.twig

中的特定树枝

在index.html.twig中打印列值,对于传递'events'的数组使用'for'循环,使用实体文件中的变量,例如,

{%event for events%}

 {{ event.eventName }}

{%endfor%}

eventName是实体'事件'中的变量。