工作了几个月之后,当我尝试从终端运行命令时,我突然收到此错误。 “X”是用户实体,扩展了FOSUserBundle。
在这里看一些类似的问题,常见的错误似乎是错误的注释,没有在AppKernel中注册bundle,或者没有在配置中启用auto_mapping。
用户类启动(我不认为属性是必要的?),如下所示:
<?php
namespace Acme\UserBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity
* @ORM\Table()
*/
class User extends BaseUser
{
// ...
}
捆绑包在AppKernel中注册:
$bundles = array(
// ...
new Acme\UserBundle\UserBundle(),
// ...
);
启用自动映射(并且未在_prod或_dev配置中禁用),如您所见:
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
另外,FOSUserBundle被告知使用正确的实体:
fos_user:
db_driver: orm
firewall_name: main
user_class: Acme\UserBundle\Entity\User
不起作用?
我在这里偶然发现了一个问题,它通过禁用eAccelerator解决了问题。我们确实在服务器上运行了eAccelerator,但是在清除缓存之后我已经验证了运行命令时phpinfo()输出中的本地值被禁用了,正如预期的那样:
eaccelerator.enable => 0 => 1
eaccelerator.optimizer => 0 => 1
当我运行doctrine:mapping:info
命令时,我可以看到我的UserBundle丢失了。我在这里完全失去了什么是缺失或不正确的。有人有什么建议吗?值得一提的是,网站的前端工作正常,这使得用户实体。
答案 0 :(得分:0)
我遇到了这个问题,用整个@Entity行删除EntityRepository是一个困倦的错误,导致“非有效实体”错误。
我花了很多时间用FOSUserBundle:User
超类地图搜索问题,但问题出现在我的课堂上,我不得不知道它没有出现在doctrine:mapping:info
上。