我第一次尝试安装FOSUserBundle。按照步骤操作后,我尝试执行php app/console doctrine:schema:update --force
。这给了我以下错误。我无法理解为什么它正在寻找getName()
,它没有在网上示例的包中显示。
PHP Fatal error: Call to undefined method music\userBundle\userBundle::getName() in /home/me/public_html/music/app/bootstrap.php.cache on line 2505
我的包裹:
<?php
// src/userBundle/Entity/User.php
namespace userBundle\Entity;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
public function __construct()
{
parent::__construct();
// your own logic
}
}
答案 0 :(得分:3)
应用程序的根目录似乎被解释为命名空间。
错误输出说 music \ userBundle :: getName(),但是对您的实体名称调用getName()应为 userBundle \ User :: getName()。
我认为您必须使用以下类架构重新构建应用程序:
YourNamespace\UserBundle
所以,你的实体应该成为
YourNamespace\UserBundle\Entity\User
和
YourNamespaceUserBundle::User
如果可以,请发布config.yml和security.yml文件
答案 1 :(得分:0)
抱歉,似乎将userBundle命名为错误,因为我手动完成了视频教程,并忘记了扩展部分。
namespace music\userBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class userBundle extends Bundle
{
}