gpt4 book ai didi

mysql - symfony 无法以多对多关系连接相关表

转载 作者:行者123 更新时间:2023-11-29 21:49:30 25 4
gpt4 key购买 nike

我无法以多对多关系连接表(ProductsCategory)。

My Entities

当我尝试加入他们时收到此错误消息

[Syntax Error] line 0, col 511: Error: Expected Literal, got 'JOIN' 

我的存储库

public function GetProductsList($productid){
$fields = array['product.product','category.category']
$query = $this->getEntityManager()->createQueryBuilder()
->select($fields)
->from('TestMyBundle:product','product')
->innerJoin('TestMyBundle:category','category')
->where('product.productid=:productid')
->setParameter('productid',$productid)
->getQuery()
->getResult();
return $query;

}

最佳答案

您的连接看起来错误,我不明白为什么您需要一个硬编码数组。也可以直接将实体别名放在选择中。我会把它写成:

public function GetProductsList($productid){

$result = $this->getEntityManager()->createQueryBuilder()
->select('product', 'category')
->from('TestMyBundle:product','product')
->join('product.categories','category') // making an assumption your product entity has getCategories()
->where('product.productid=:productid')
->setParameter('productid',$productid)
->getQuery()
->getResult();

return $result;
}

然后应该可以工作。

请注意,当您遇到此类问题时,执行类似 ->getSQL() 而不是 getQuery() 和 var_dump SQL 的操作以查看查询生成器生成的内容非常有用,这样可以更轻松地进行调试。

关于mysql - symfony 无法以多对多关系连接相关表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33788657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com