0

私は FOSUserBundle を使用しており、いくつかの新しいフィールド (deviceVersion (string) & deviceType (string) など) を持つ独自のモデルを作成しました。

新しいユーザーを作成して特定のフィールドを追加すると、すべて問題ありません。

$user = new User();
$user -> setEmail('test@some.tld');
// Default stuff
$user -> setDevicetype('Android');
$user -> setDeviceversion('4.2.2');

$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();

echo $user->getDevicetype(); // outputs Android
echo $user->getDeviceversion(); // outputs 4.2.2

問題は、データベースのフィールド「devicetype」と「deviceversion」が NULL であることです。

クエリでさえ、これらの新しいフィールドを完全に無視します。

  INSERT INTO my_user (username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expired, expires_at, confirmation_token, ....

列は存在し、php app/console doctrine:schema:update --force --env="dev"

問題なく列を作成します。

これを解決する方法はありますか?私は最初にUserManagerを試しましたが、まだNULLで、EM経由で手動に切り替えましたが、まだNULLです。

4

1 に答える 1

1

User.orm.xmlこれらのフィールドをオーバーライドして、パラメーターを配置する必要がありますかnullable=true

このような:

<field name="confirmationToken" column="confirmation_token" type="string" nullable="true" />
<field name="passwordRequestedAt" column="password_requested_at" type="datetime" nullable="true" />
于 2013-10-15T15:00:13.067 に答える