FOSUserBundle 未定义方法 getName();
FOSUserBundle undefined method getName();
我是第一次尝试安装 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
}
}
您的应用程序的根目录似乎被解释为命名空间。
错误输出显示 music\userBundle::getName(),但对您的实体名称调用 getName() 应该是 userBundle\User::getName() .
我认为您必须使用以下 class 架构重新构建您的应用程序:
YourNamespace\UserBundle
所以,你的实体应该变成
YourNamespace\UserBundle\Entity\User
和
YourNamespaceUserBundle::User
如果可以,post 你的 config.yml 和 security.yml 文件
首先,您需要确保将您的包包含在 AppKernel.php
中,还应检查您的命名空间,在最佳实践中,您的命名空间应包含供应商名称、包名称、到 [=22= 的目录],所以你应该考虑将你的命名空间设置成这样:
namespace music\userBundle\Entity;
因为现在看来你做错了什么:
music\userBundle\userBundle::getName()
和
namespace userBundle\Entity;
并且在安装新包之后(或在任何重要更改之后)不要忘记通过 cli 命令或手动清除您。试试这个,如果它没有帮助,那么我们将更深入地了解您的项目结构。
抱歉,似乎将 userBundle 命名为错误,因为按照我手动完成的视频教程,忘记了扩展部分。
namespace music\userBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class userBundle extends Bundle
{
}
我是第一次尝试安装 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
}
}
您的应用程序的根目录似乎被解释为命名空间。
错误输出显示 music\userBundle::getName(),但对您的实体名称调用 getName() 应该是 userBundle\User::getName() .
我认为您必须使用以下 class 架构重新构建您的应用程序:
YourNamespace\UserBundle
所以,你的实体应该变成
YourNamespace\UserBundle\Entity\User
和
YourNamespaceUserBundle::User
如果可以,post 你的 config.yml 和 security.yml 文件
首先,您需要确保将您的包包含在 AppKernel.php
中,还应检查您的命名空间,在最佳实践中,您的命名空间应包含供应商名称、包名称、到 [=22= 的目录],所以你应该考虑将你的命名空间设置成这样:
namespace music\userBundle\Entity;
因为现在看来你做错了什么:
music\userBundle\userBundle::getName()
和
namespace userBundle\Entity;
并且在安装新包之后(或在任何重要更改之后)不要忘记通过 cli 命令或手动清除您。试试这个,如果它没有帮助,那么我们将更深入地了解您的项目结构。
抱歉,似乎将 userBundle 命名为错误,因为按照我手动完成的视频教程,忘记了扩展部分。
namespace music\userBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class userBundle extends Bundle
{
}