在一个实体中,我用 DoctrineExtension 定义了一个 slug,我在我的 href 中使用它。但是...我的路由器和/或 ParamConverter 有问题。
在我的控制器中:
/**
* @Route("/{slug}", name="strain_view")
* @ParamConverter("strain", class="AppBundle:Strain", options={
* "repository_method" = "findOneWithAll",
* })
* @Security("is_granted('STRAIN_VIEW', strain)")
*/
public function viewAction(Strain $strain)
{
return $this->render('strain/view.html.twig', [
'strain' => $strain,
]);
}
我有这个错误:
SQLSTATE[HY093]:参数号无效:参数未定义
在调试栏中,我看到,问题是数组中的数组:
参数:[ 0 => [ slug => t1p-0004-e-coli-pgem-t-promupf3-leu2-termupf3 ] ]
当我用 {id} 替换 @Route: {slug} 并手动输入网址时,我已经
参数:[0 => t1p-0004-e-coli-pgem-t-promupf3-leu2-termupf3]
而且......这是工作,但在我的存储库中,我有:
public function findOneWithAll($slug)
{
$query = $this->createQueryBuilder('strain')
->where('strain.slug = :slug')
->setParameter('slug', $slug)
->getQuery();
我不明白为什么。