所以我正在symfony 3.0.1中做一个项目。我已经生成了实体(通过具有以下交互式设置问题的doctrine:generate:entity
),然后doctrine:schema:update --force
从 Doctrine 实体生成数据库中的表。然后我进入实体并创建了关联。之后,我继续做了另一个doctrine:schema:update -- force
,在签入phpMyAdmin后,我强制的模式更新没有创建任何关系。
我还缺少什么吗?请参阅下面的我的实体:
namespace MyAppBundleEntity;
use DoctrineORMMapping as ORM;
use DoctrineCommonCollectionsArrayCollection;
/**
* Logins
*
* @ORMTable(name="logins")
* @ORMEntity(repositoryClass="MyAppBundleRepositoryLoginsRepository")
*/
class Logins
{
/**
* @var int
*
* @ORMColumn(name="RoleID", type="integer")
* @ORMManyToOne(targetEntity="Roles", inversedBy="roleID")
* @ORMJoinColumn(name="roleID", referencedColumnName="roleID")
*/
private $roleID;
'
'namespace MyAppBundleEntity;
use DoctrineORMMapping as ORM;
use DoctrineCommonCollectionsArrayCollection;
/**
* Roles
*
* @ORMTable(name="roles")
* @ORMEntity(repositoryClass="MyAppBundleRepositoryRolesRepository")
*/
class Roles
{
/**
* @var int
*
* @ORMColumn(name="roleID", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
* @ORMOneToMany(targetEntity="Logins", mappedBy="roleID")
*/
private $roleID;
public function __construct() {
$this->roleID=new ArrayCollection();
仍然不确定为什么会有冲突,但我解决了我的问题 教义逆向工程.我在 PMA 中创建了关系,然后从中生成映射。一切都很顺利。
编辑:评论我帖子的人是对的。我无法在标识属性上分配一对多。
我已经多次遇到令人沮丧的问题,关系没有在我的生产环境中更新。我的代码将按预期执行,没有错误,但表根本不会更新。
我发现,如果您使用的是APC并且刚刚添加了新关系,则需要重新启动Web服务器才能清除旧版本的实体类。