1

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 を参照します。

:(

4

1 に答える 1