2つのDAOの間に1対多/多対1の関係をしたい。OneToMany/ManyToOneの教義関係でネストされたオブジェクトを取得する
プロパティをアノテーションした後、結果に予期せぬ無制限のオブジェクトがあります。
/**
* TicketSponsorDAO
*
* @ORM\Table(name="ticket_sponsor")
* @ORM\Entity
*/
class TicketSponsorDAO {
/**
* @var int
*
* @ORM\Column(name="ticket_id", type="integer")
*/
private $ticketId;
/**
* @ORM\ManyToOne(targetEntity="TicketDAO", inversedBy="sponsors")
* @ORM\JoinColumn(name="ticket_id", referencedColumnName="id")
*/
private $ticket;
...
}
そして
/**
* TicketDAO
*
* @ORM\Table(name="ticket")
* @ORM\Entity
*/
class TicketDAO
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="TicketSponsorDAO", mappedBy="ticket")
*/
private $sponsors;
public function __construct() {
$this->sponsors = new ArrayCollection();
}
...
}
私が実行:
$sponsorEm = $em->getRepository(TicketDAO::class);
$spo = $sponsorEm->find("2");
var_dump($spo);
私はチケットDAOについての良好な特性を持っていますが、関係がうまくいかないと、私はある無限のオブジェクトを持っています戻ってきた。
したがって、MySQLデータベースでは、私はここにある外部キー、FKインデックス、およびプライマリキーを持っています。
symfonyからダンプで試すことはできますか?あなたは循環参照内にあるかもしれません – albert
@albertあなたは正しくありません。var_dumpが管理していないチケットからスポンサーを表示すると再帰があります。ダンプはOKです – mickaelw
私は答えとして追加しましたので、近くにマークすることができます。私は非常にIDEを取得し、デバッガを使用することを学ぶことをお勧めします。 – albert