私はPHPで初心者です。私はsymfonyで仕事を始めたが、私はこの問題を持っているOneToMany ManyToOne DoctrineORMエラー
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @param \Doctrine\Common\Collections\Collection $carList
* @ORM\OneToMany(targetEntity="AppBundle\CarBundle\Entity\Car", mappedBy="name", cascade={"persist"})
*/
private $carList;
//getters and setters
}
*
* @ORM\Entity(repositoryClass="AppBundle\CarBundle\Repository\Entity\CarRepository")
* @ORM\Table(name="car")
*/
class Car
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*
*
*/
protected $id;
/**
* @ORM\Column(type="string", length=100)
* @ORM\ManyToOne(targetEntity="AppBundle\UserBundle\Entity\User" , inversedBy="carList")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $name;
//getters and setters
}
スタックトレースは言う:
のSymfony \コンポーネント\デバッグ\例外の\ ContextErrorException:注意:未定義のインデックスを:名前 (n/a)
a NDとき、私はPHPのbin /コンソール教義を実行します。スキーマ:
を検証し、[マッピング] FAIL - エンティティクラスのAppBundle \ UserBundle \エンティティ\ユーザーズ マッピングが無効です: *関連AppBundle \ UserBundle \ Entity \ User#carListは、関連付けとして定義された ではない、所有サイドフィールドAppBundle \ CarBundle \ Entity \ Car#nameを参照しますが、フィールドとして定義されています。 *関連AppBundle \ UserBundle \エンティティ\ユーザー#のcarListは 私はあなたが助けることができる、起こっていただきました!見当がつかない
存在しない所有側フィールドAppbundle \ CarBundle \エンティティ\カー#名を指し、私?
あなたは列名との関連名を取り違えています。アソシエーションを作成するときには、そのアソシエーションの列を手動で追加する必要はありません。そのため、doctrineはそのアソシエーションを使用します。参照http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/association-mapping.html#many-to-one-unidirectional – JimL