Symfony2 YAML实体字段未绑定


Symfony2 YAML Entity field not being bound

我在Symfony2上有一个项目。我应该说,无论如何我都不认为自己是Symfony2的大师。你可以说我是个新人。

我的实体是通过YAML绑定到数据库的,实体类是在php中创建的,不受注释的约束。

我有一个这样的实体:

Project/CoreBundle/Resources/config/doctrine/Card.orm.yml
Project/CoreBundle/Entity/Card.php

卡片——是一个仪表板元素,可以随意拖动,方便用户使用。

对应的Card.orm.yml和Card.php的结构对应于db中的table。我创建了这段代码,运行良好。

问题:现在,我尝试添加更多的字段表,以形式和实体,他们没有被Symfony2/Doctrine2查询选择(我已经在调试器中查找,甚至在查询新字段被选中)。

更重要的是,我尝试添加任何字段,它不会成为绑定。在检索对象中,它总是NULL。我已经查看了这个实体的映射,这个字段正在被映射。但是在select query中,它不存在。我曾经使用过清晰的缓存机制,但都不起作用。我已经从表单和实体中删除了其他字段- Doctrine2抛出异常,虽然当我删除这个字段(它仍然存在于表中)并且工作相同时,只是返回null。

是这样的:

$queryBuilder
        ->select(array('card','card.isSpecialCard'))

"isSpecialCard"字段是一个没有被绑定到选择,所以我必须自定义选择它的表,然后它通过选择加载。此外,它被加载到另一层数组中,在CARD对象的旁边,而不是在对象中,尽管对象仍然有那个字段,并且它的值就像它被选中一样。

我用的是Symfony 2.1

您不应该手动进行更改,而应该让ORM驱动程序为您完成这些更改。使用以下两个命令相应地更新实体和数据库:

php app/console doctrine:generate:entities Namespace:Card
php app/console doctrine:schema:update --force