Symfony的/学说

sti*_*vlo 2 php doctrine symfony

我正在通过阅读文档来学习Symfony和Doctrine .

我不明白findfindOneById之间的区别.我试着在这个简单的例子中使用它们,看起来它们对我做同样的事情.

$product = $this->getDoctrine()
                ->getRepository('AcmeStoreBundle:ProductEntity')
                ->findOneById($id);
Run Code Online (Sandbox Code Playgroud)

它们真的是一样的还是有区别的?在哪里可以找到所有这些方法的详细文档?

rid*_*rid 12

在你的情况下,他们碰巧做同样的事情.查看此示例,您将注意到find()查找以主键命名的字段.findOneBy<Field>()将明确使用方法名称中的字段,即使它不是主键,也将返回第一个记录.所以,最后,如果确实命名了主键id,那么两者都会做同样的事情.

// query by the primary key (usually "id")
$product = $repository->find($id);

// dynamic method names to find based on a column value
$product = $repository->findOneById($id);
$product = $repository->findOneByName('foo');
Run Code Online (Sandbox Code Playgroud)