Symfony2使用数据库

时间:2014-01-06 00:32:01

标签: php database symfony

我正在研究我在Symfony2上的第一个项目。我在基本行动方面遇到了一些问题。 我已经生成了我的表的实体:

CREATE TABLE IF NOT EXISTS `product_category` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

现在我想从这个表中选择所有行。我该怎么办?我试图在我的实体中添加新方法。

public function getAll()
{
    $em = $this->getDoctrine()->getManager();
    $query = $em->createQuery(
        'SELECT *
        FROM product_category'
    );

    return $query->getResult();
}

...但我很确定这是不好的方法,因为我必须在具体实体的上下文中使用此方法。有什么提示吗?

1 个答案:

答案 0 :(得分:1)

Doctrine使用DQL而不是SQL而且您不需要自定义查询获取所有记录,您可以使用默认存储库:

// e.g. in a controller
$repository = $this->getDoctrine()->getRepository('AcmeStoreBundle:Product');
$products = $repository->findAll();

这是the symfony docs.的一个例子你应该首先阅读文档,这些项目有更多的文档。