我想连接两个实体
某些 DishCategory 中的菜
带有 DishCategory (id) 的菜 (category_id)
有一个错误:
关联 AppBundle\Entity\Dish#categoryId 指的是不存在的反边字段 AppBundle\Entity\DishCategory#category_id。
这些是我的实体类
菜实体
class Dish
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
*@ORM\ManyToOne(targetEntity = "DishCategory",inversedBy="category_id",cascade={"persist"})
* @ORM\JoinColumn(name="id",referencedColumnName="id")
*/
private $categoryId;
}
DishCategory 实体
class DishCategory
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\OneToMany(targetEntity="Dish", mappedBy="category_id")
* @ORM\JoinColumn(name="category_id",referencedColumnName="id")
*/
private $id;
}
在 DishController 中,我将此函数运行到存储库
$dishes = $em->getRepository('AppBundle:Dish')->findAllAsArray();
这就是 DishRepository 的样子
public function findAllAsArray()
{
return $q = $this->createQueryBuilder('d')
->join('d.categoryId','c')
->select('d.id as id_dish','c.id as id_cat','d.price')
->orderBy('c.position', 'asc')
->orderBy('d.position', 'asc')
->getQuery()
->getResult(Query::HYDRATE_ARRAY);
}
我已经阅读了很多关于 OneToMany 的教程,但我仍然找不到问题出在哪里:(
仍然出现错误:
关联 AppBundle\Entity\Dish#categoryId 指的是不存在的反边字段 AppBundle\Entity\DishCategory#category_id。
:(