私はゲームと拡張の間に1対多の関係があります。 ゲームには多くの拡張機能があり、拡張機能は1つのゲームに属することができます。symfony 1対多[マッピング] doctrine:FAIL:validate
私はビン/コンソール教義行うと:スキーマ:検証を、私は次のエラーを取得する:
[Mapping] FAIL - The entity-class 'AppBundle\Entity\Expansion' mapping is invalid: * The association AppBundle\Entity\Expansion#game refers to the inverse side field AppBundle\Entity\Game#expansions which doesn't exist.
私は何度も何度も見てきたが、私は何が不足しているか見つけることができないよう、私はまた...
何かを見下ろすされなければならない、私はinversedBy =「拡張」削除しました - エラーが表示されないのが、私は小枝のダンプを行う場合、それはまた、何もしていません。
{{dump(game.expansions)}}
関連性がありますphpmyadminの中エーション:
- 拡張テーブル:
- ゲームテーブル:
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Game
*
* @ORM\Table(name="game")
* @ORM\Entity(repositoryClass="AppBundle\Repository\GameRepository")
*/
class Game
{
/**
* @ORM\OneToMany(targetEntity="PlayLog", mappedBy="game")
* @ORM\OneToMany(targetEntity="Expansion", mappedBy="game")
* @ORM\OrderBy({"date" = "DESC"})
*/
private $playlogs;
private $expansions;
private $users;
/**
* @return ArrayCollection
*/
public function getUsers()
{
return $this->users;
}
/**
* @param ArrayCollection $users
*/
public function setUsers($users)
{
$this->users = $users;
}
/**
* Game constructor.
*/
public function __construct()
{
$this->playlogs = new ArrayCollection();
$this->expansions = new ArrayCollection();
$this->users = new ArrayCollection();
}
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
* @Assert\NotBlank()
* @Assert\Length(
* min = "3",
* max = "100"
*)
* @ORM\Column(name="name", type="string", length=255, unique=true)
*/
private $name;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
*
* @return Game
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @return mixed
*/
public function getPlaylogs()
{
return $this->playlogs;
}
/**
* @return mixed
*/
public function getExpansions()
{
return $this->expansions;
}
public function addGameUser(User $user)
{
$this->users[] = $user;
}
}
拡張エンティティは
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Expansion
*
* @ORM\Table(name="expansion")
* @ORM\Entity(repositoryClass="AppBundle\Repository\ExpansionRepository")
*/
class Expansion
{
/**************************
* Relations
*************************/
/**
* @ORM\ManyToOne(targetEntity="Game")
* @ORM\JoinColumn(name="game_id", referencedColumnName="id")
*/
private $game;
/**************************
* Properties
*************************/
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
* @Assert\NotBlank()
* @Assert\Length(
* min = "3",
* max = "100"
*)
* @ORM\Column(name="name", type="string", length=255, unique=true)
*/
private $name;
/**************************
* Getters and setters
*************************/
/**
* @return mixed
*/
public function getGame()
{
return $this->game;
}
/**
* @param mixed $game
*/
public function setGame($game)
{
$this->game = $game;
}
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
*
* @return Expansion
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
}
あなたが言ったようにコードをフォーマットしました。私が問題になると思っていたことは全くありません...ありがとう! – Ducky