注:私は尋ねる前にいくつかの検索を行っていました。一つはチャネルであり、他の1チャネルは、以下のコードは、多くのプラグインを持つことができ、プラグインである、Doctrineは関係を生成できません
チャンネル::
私は2つのエンティティを持っている:ここ
は私の問題ですuse Gedmo\Mapping\Annotation as Gedmo; // gedmo annotations
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* Mikay\MikiBundle\Entity\Channel
*
* @ORM\Table(name="channels")
* @ORM\Entity(repositoryClass="Mikay\MikiBundle\Entity\ChannelRepository")
*/
<?php
class Channel
{
/**
* @ORM\OneToMany(targetEntity="Plugin", mappedBy="channel")
*/
private $plugins;
プラグイン:
use Doctrine\ORM\Mapping as ORM;
/**
* Mikay\MikiBundle\Entity\Plugin
*
* @ORM\Table(name="plugins")
* @ORM\Entity(repositoryClass="Mikay\MikiBundle\Entity\PluginRepository")
*/
<?php
class Plugin
{
/**
* @ORM\ManyToOne(targetEntity="Channel", inversedBy="plugins")
* @ORM\JoinColumn(name="channel_id", referencedColumnName="id")
*/
private $channel;
私は、データベースを更新するには、このコマンドを使用しますが、それ2つのテーブル間の関係を作成したことはありません。
php app/console doctrine:schema:update --force
何が問題なのですか。設定エラーですか?
EDIT:
注: は、プラグインの実体に
@ORM\Column(name="channel_id", type="integer")
この種のannonationを追加しないでください、またはそれは2つのテーブル間の関係を生成しません、それは私の問題の原因です。
JoinColumn宣言を削除することはできません。無用です。あなたは、関係は決して作られなかったと言いますか?宣言を削除し、スキーマを更新し、宣言を元に戻し、 'php app/console doctrine:schema:update --dump-sql'を実行するとどうなりますか? – greg0ire
ありがとう、それは私のすべてのコードが正しいと思われ、dcotrineは今テーブル間の関係を生成することができます。私はこの質問を閉じるでしょう。うん、JoinColumnステートメントは不要です。再度、感謝します。 – imikay
そして、所有側で関係を指定する必要があるだけで、逆側は必要ありません。 – imikay