本文介绍了Symfony 5 - 语义 *** 错误没有名为 category.id 的字段或关联的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!
问题描述
我有这个问题,我真的不知道为什么......
I have this issue and I don't know really why...
存储库:
/**
* @return Creations[]
*/
public function displayOne(): array
{
return $this->createQueryBuilder('c')
->andWhere('c.category.id = 1')
->setMaxResults(3)
->getQuery()
->getResult();
// returns an array of Product objects
return $query->getResult();
}
}
实体:
/**
* @ORMManyToOne(targetEntity=Category::class, inversedBy="creations")
* @ORMJoinColumn(nullable=false)
*/
private $category;
控制器功能:
public function index(): Response
{
$repository = $this->entityManager->getRepository(Creations::class);
$creations = $repository->findAll();
$categories = $this->entityManager->getRepository(Category::class)->findAll();
return $this->render('creations/index.html.twig', [
'creations' => $repository->displayOne(),
'categories' => $categories
]);
}
另外,当我 dd($creations) 时,我得到了很好的链接".创作->类别->身份证->1个例子
Also when I dd($creations), I got the good "link" thecreation -> category -> id -> 1 for example
感谢您的帮助!
推荐答案
试试这个:
public function displayOne(Category $category): array
{
return $this->createQueryBuilder('c')
->andWhere('c.category = :category')
->setParameter('category', $category)
->setMaxResults(3)
->getQuery()
->getResult();
}
或者:
public function displayOne(): array
{
return $this->createQueryBuilder('c')
->join('c.category', 'cat')
->andWhere('cat.id = :category')
->setParameter('category', 1)
->setMaxResults(3)
->getQuery()
->getResult();
}
三部分选择器 c.category.id
是行不通的.
The three parts selector c.category.id
is just not going to work.
这篇关于Symfony 5 - 语义 *** 错误没有名为 category.id 的字段或关联的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!
本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!