0

symfonyはメールフィールドをユニークとしてマークしていません。私はvalidation.ymlでそれを設定できますが、良い方法ではありません。symfonyが電子メールフィールドを一意としてマークしない理由を誰かが知っていますか?

既存のデータベースからエンティティを作成するために実行するコマンド:

php app/console doctrine:mapping:convert xml ./src/Frontend/AccountBundle/Resources/config/doctrine/metadata/orm --from-database --force
php app/console doctrine:mapping:import FrontendAccountBundle annotation
php app/console doctrine:generate:entities FrontendAccountBundle

私のテーブル:

CREATE TABLE `user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
   PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`),
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=22 ;

config /...../ User.orm.xml:

<field name="email" type="string" column="email" length="255" nullable="false"/>

Entity/User.php内

/**
 * @var string
 *
 * @ORM\Column(name="email", type="string", length=255, nullable=false)
 */
private $email;
4

2 に答える 2

1

列が次のような一意の値を保持する必要があることを指定する必要があります。

@ORM\Column(name="email", type="string", unique=true, length=255, nullable=false)
                                         ^^^^^^^^^^^
于 2013-01-02T21:23:14.830 に答える
1

@ORM \ Column(name = "username"、type = "string"、length = 25、unique = true)

于 2013-03-25T11:25:59.243 に答える