リバースエンジニアリング用のDoctrineツールを使用して、既存のデータベースからエンティティを生成したい
/*
* SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `country`
-- ----------------------------
DROP TABLE IF EXISTS `country`;
CREATE TABLE `country` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for `provider`
-- ----------------------------
DROP TABLE IF EXISTS `provider`;
CREATE TABLE `provider` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for `provider_country`
-- ----------------------------
DROP TABLE IF EXISTS `provider_country`;
CREATE TABLE `provider_country` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`providerId` int(11) unsigned NOT NULL,
`countryId` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_provider_has_id0_idx` (`providerId`),
KEY `fk_user_country_idx` (`countryId`),
CONSTRAINT `fk_rss_has_id` FOREIGN KEY (`providerId`) REFERENCES `provider` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `fk_user_country` FOREIGN KEY (`countryId`) REFERENCES `country` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS=1;
*/
次の2つのコマンドを実行することで、Doctrineにスキーマをインポートして関連するエンティティクラスを構築するように依頼できます。
1 $ php app/console doctrine:mapping:import AcmeBlogBundle annotation
2 $php app/console doctrine:generate:entities AcmeBlogBundle
しかし今では、教義は多くの側でのみ「ProviderCountry」テーブルのManyToOne関係のみを検出します
OneToManyリレーションを追加する必要がある場合は、次の注釈を追加して、手で注釈を追加する必要があります。
Provider.phpに追加
/**
* @ORM\OneToMany(targetEntity="ProviderCountry", mappedBy="providerId", cascade={"persist"})
*/
private $datas;
ProviderCountry.phpに追加
/**
* @var Provider
*
* @ORM\ManyToOne(targetEntity="Provider", inversedBy = "datas")
* @ORM\JoinColumn(name="providerId", referencedColumnName="id")
*/
private $userid;
では、教義コマンドで1対多の注釈を生成するにはどうすればよいですか。