多対多の関係で2つのエンティティが関連付けられている場合と同様に、スムーズな管理インターフェイスを取得しようとしています。ランクのような追加情報を定義するには、結合表が必要です。私は、バックエンドにジョイント可能なエンティティを表示したくないので、少なくとも1つのエンティティの編集メニューに書き込むことができます。私の例:EasyAdminBundleでJoinテーブルを持つ多対多
class Question{
/**
* @Assert\NotBlank()
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Options2Questions", mappedBy="question", cascade={"persist"})
*/
private $optionQuestion;
public function __construct() {
$this->optionQuestion = new \Doctrine\Common\Collections\ArrayCollection();
}
public function addOptionQuestion(\AppBundle\Entity\Options2Questions $optionQuestion){
$this->optionQuestion[] = $optionQuestion;
return $this;
}
public function removeOptionQuestion(\AppBundle\Entity\Options2Questions $optionQuestion){
$this->optionQuestion->removeElement($optionQuestion);
}
public function getOptionQuestion(){
return $this->optionQuestion;
}
}
class Options{
/**
* @Assert\NotBlank()
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Options2Questions", mappedBy="options")
*/
private $optionQuestion;
public function __construct(){
$this->optionQuestion = new \Doctrine\Common\Collections\ArrayCollection();
}
public function addOptionQuestion(\AppBundle\Entity\Options2Questions $optionQuestion){
$this->optionQuestion[] = $optionQuestion;
return $this;
}
public function removeOptionQuestion(\AppBundle\Entity\Options2Questions $optionQuestion)
{
$this->optionQuestion->removeElement($optionQuestion);
}
public function getOptionQuestion(){
return $this->optionQuestion;
}
}
class Options2Questions
{
/**
* @ORM\Id()
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Options", inversedBy="optionsQuestions")
* @ORM\JoinColumn(name="options_id", referencedColumnName="id", nullable=false)
*/
private $options;
/**
* @ORM\Id()
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Question", inversedBy="optionsQuestions")
* @ORM\JoinColumn(name="question_id", referencedColumnName="id", nullable=false)
*/
private $question;
/**
* @var int
*
* @ORM\Column(name="rank", type="integer", nullable=true)
*/
private $rank;
/**
* Set rank
*
* @param integer $rank
*
* @return Options2Questions
*/
public function setRank($rank)
{
$this->rank = $rank;
return $this;
}
/**
* Get rank
*
* @return int
*/
public function getRank()
{
return $this->rank;
}
/**
* Set options
*
* @param \AppBundle\Entity\Options $options
*
* @return Options2Questions
*/
public function setOptions(\AppBundle\Entity\Options $options)
{
$this->options = $options;
return $this;
}
/**
* Get options
*
* @return \AppBundle\Entity\Options
*/
public function getOptions()
{
return $this->options;
}
/**
* Set question
*
* @param \AppBundle\Entity\Question $question
*
* @return Options2Questions
*/
public function setQuestion(\AppBundle\Entity\Question $question)
{
$this->question = $question;
return $this;
}
/**
* Get question
*
* @return \AppBundle\Entity\Question
*/
public function getQuestion()
{
return $this->question;
}
}
これに関する文書は見つかりませんでした。私は具体的にどこを見ますか?
は、あなたがこのeasyadminbundleで動作しますか? – Jeff
はい、ヘッダーにEasyAdminが表示されませんでした。しかし、アイデアは同じでなければなりません。 – staskrak