我刚刚安装了 Sonata Admin Bundle ,事实上,我有一个自定义存储库,我的一个实体使用了覆盖find()
方法。它看起来像这样(其中有更多内容,但它无关紧要):
public function find($id)
{
$query = $this->createQueryBuilder('blogArticle')
->select('blogArticle')
->where('blogArticle.id = :id')
->setParameter('id', $id)
->getQuery();
return $query->getSingleResult();
}
它对项目来说非常好。但是,当我尝试通过 Sonata Dashboard 进行编辑时,编辑操作会产生错误:
SQLSTATE [HY093]:参数号无效:参数未定义
这是因为 Sonata 传递数组['id' => 1]
而不是简单整数值,就像我使用getRepository()->find(1)
方法一样。
我可以为回购邮件写一个kludge来处理这个,但显然不是一个选择。也许有人知道如何改变 Sonata 的行为,或者?