我正在研究我在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();
}
...但我很确定这是不好的方法,因为我必须在具体实体的上下文中使用此方法。有什么提示吗?
答案 0 :(得分:1)
Doctrine使用DQL而不是SQL而且您不需要自定义查询获取所有记录,您可以使用默认存储库:
// e.g. in a controller
$repository = $this->getDoctrine()->getRepository('AcmeStoreBundle:Product');
$products = $repository->findAll();
这是the symfony docs.的一个例子你应该首先阅读文档,这些项目有更多的文档。