2 つのエンティティを接続したい
いくつかの 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 を参照します。
:(