ドクトリン 2 で次の問題が発生しました。住所エンティティと国エンティティをユーザー エンティティに結合したいと考えています。そのため、いくつかの試行の後、データベースで正常に動作しますが、使用する./vendor/bin/doctrine-module orm:validate-schema
と、マッピングでいくつかの失敗が示されます。
[Mapping] FAIL - The entity-class 'User\Entity\Adress' mapping is invalid:
* The association User\Entity\Adress#user refers to the inverse side field User\Entity\User#use
r_id which does not exist.
* The association User\Entity\Adress#country refers to the inverse side field User\Entity\Count
ry#id which is not defined as association.
* The association User\Entity\Adress#country refers to the inverse side field User\Entity\Count
ry#id which does not exist.
私のデータベースはこのようにうまく機能するので、なぜこれが起こったのか本当にわかりません。住所のユーザーと国のエンティティ、および値も認識します。
私のユーザーエンティティ:
...
/**
* Entity Class representing a post of our User module.
*
* @ORM\Table(name="user")
* @ORM\Entity(repositoryClass="User\Repository\UserRepository")
*
* @property int userid
* @property string firstname
* @property string insertion
* @property string lastname
* @property date dateofbirth
* @property string gender
* @property string phonenumber
* @property string mobile
*/
class User extends zfcUser implements UserInterface
{
/**
* Id from user
*
* @ORM\OneToMany(targetEntity="Adress", mappedBy="user", cascade= "remove")
* @access protected
*/
/**
* Firstname of our user
*
* @ORM\Column(type="string", nullable=true)
* @var string
* @access protected
*/
protected $firstname;
...
...
私の住所エンティティ:
/**
* Entity Class representing our Adress module.
*
* @ORM\Entity
* @ORM\Table(name="adress")
* @property integer addressid
* @property string street
* @property integer number
* @property string addition
* @property string zipcode
* @property integer userid
* @property integer countryid
*/
class Adress
{
...
...
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="user_id")
* @ORM\JoinColumn(name="user_id", referencedColumnName="user_id")
* @var User[]
* @access protected
*/
protected $user;
/**
* @ORM\ManyToOne(targetEntity="Country", inversedBy="id")
* @ORM\JoinColumn(name="country_id", referencedColumnName="id")
* @var Country[]
* @access protected
*/
protected $country;
...
...
私の国のエンティティ:
...
...
/**
* Entity Class representing our Country module.
*
* @ORM\Entity
* @ORM\Table(name="country")
* @property integer id
* @property string countrycode
* @property string countryname
*/
class Country
{
/**
* Id from a country
*
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\OneToMany(targetEntity="Adress", mappedBy="country")
* @var int
* @access protected
*/
protected $id;
...
...
なぜこれが起こったのか説明してください。