Я хочу соединить две сущности
Блюдо, которое находится в некоторой категории DishCategory
Блюдо (category_id) с DishCategory (id)
Возникла ошибка:
Ассоциация AppBundle \ Entity \ Dish # categoryId ссылается на обратное боковое поле AppBundle \ Entity \ DishCategory # category_id, которое не существует.
Это мои классы сущностей
Dish Entity
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 Entity
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, которое не существует.
: (