Symfony:向Doctrine Entity添加列

124*_*c41 0 php doctrine symfony doctrine-orm

我正在努力学习Symfony的基础知识,并遇到了令我困惑的问题.

我正在尝试将数据写入SQL表,主要是遵循文档中的说明(http://symfony.com/doc/current/book/doctrine.html).我创建了一个实体

$ php bin/console doctrine:generate:entity
Run Code Online (Sandbox Code Playgroud)

它正确映射到我的数据库表,我可以读写,没问题.之后,我在表格中添加了一列,并向我的实体添加了相应的行:

/**
 *  @var string
 *
 *  @ORM\Column(name="User_Credentials", type="text")
 */
private $userCredentials;
Run Code Online (Sandbox Code Playgroud)

然后我尝试创建setter和getter,但没有进行任何更改,只是我的Entity的备份.所以我自己添加了getter和setter,但是当尝试写入DB时,相应的列被省略,保持为空.没有错误.我检查并重新检查了拼写错误或其他sytax错误,但找不到任何错误.做的时候

$ php bin/console doctrine:schema:update --dump-sql
Run Code Online (Sandbox Code Playgroud)

我明白了

ALTER TABLE st_users DROP User_Credentials;
Run Code Online (Sandbox Code Playgroud)

所以看来我的专栏完全被忽略了.我重新清理了缓存,没有改变任何东西.显然,我迷路了.任何关于正确路径的提示都将受到赞赏.

谢谢.

Mer*_*süz 5

您可以使用DoctrineMigrationsBundle进行此操作.该捆绑包将管理您的数据库操作.(掉落,改变,创造等)

无论如何,当你添加一个新列时,你可以试试这个: php app/console doctrine:schema:update --force

  • 你可以尝试 `php bin/console 学说:cache:clear-metadata` 和 `php bin/console 学说:migrations:diff` (2认同)