我尝试在我的项目上安装和配置SonataUserBundle。我正确安装和配置了SonataAdminBundle,并且一切正常。但是在扩展捆绑包并生成应用程序之后,我遇到了错误。 我正在使用Symfony 3.4版本。
php app/console sonata:easy-extends:generate SonataUserBundle -d src
在生成的应用程序的我的src文件夹中创建了一个名为Application的文件夹。 我也将其添加到我的bundles.php文件中:
Sonata\UserBundle\SonataUserBundle::class => ['all' => true],
Application\Sonata\UserBundle\ApplicationSonataUserBundle::class => ['all' => true],
并配置了我的路线,但是当我运行网站时,出现此错误:
Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "ApplicationSonataUserBundle" from namespace "Application\Sonata\UserBundle".
您是否忘记了另一个名称空间的“使用”语句?在C:\ wamp64 \ www \ staff-ma \ src \ Kernel.php:33
我的ApplicationSonataUserBundle类:
namespace Application\Sonata\UserBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class ApplicationSonataUserBundle extends Bundle
{
/**
* {@inheritdoc}
*/
public function getParent()
{
return 'SonataUserBundle';
}
}
我的composer.json:
"autoload": {
"psr-4": {
"App\\": "src/"
}
我补充说:
"autoload": {
"psr-4": {
"App\\": "src/"
"Application\\": "src/Application/Sonata/UserBundle/"
}
},
但是我又遇到了同样的错误。
答案 0 :(得分:0)
解决问题。我刚刚将App添加到我的命名空间中:
namespace App\Application\Sonata\UserBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
/**
* This file has been generated by the SonataEasyExtendsBundle.
*
* @link https://sonata-project.org/easy-extends
*
* References:
* @link http://symfony.com/doc/current/book/bundles.html
*/
class ApplicationSonataUserBundle extends Bundle
{
/**
* {@inheritdoc}
*/
public function getParent()
{
return 'SonataUserBundle';
}
}
在bundles.php中也是如此:
return [
App\Application\Sonata\UserBundle\ApplicationSonataUserBundle::class => ['all' => true],
];