根据标题,我正在使用 Sonata Admin 和 FosUser。
Sonata Admin 对我的正常实体工作正常;我可以做通常的 CRUD 事情。
然后我按照文档中的这个示例连接到 FosUser
我的 services.yml 是这样的:
sonata.admin.user:
class: Company\MyBundle\Admin\UserAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Administration", label: "Users" }
arguments: [ null, Company\UserBundle\Entity\User, SonataAdminBundle:CRUD ]
calls:
- [ setUserManager, [ @fos_user.user_manager ] ]
...我已经创建了 UserAdmin.php:
namespace Company\MyBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Validator\ErrorElement;
use Sonata\AdminBundle\Form\FormMapper;
use FOS\UserBundle\Model\UserManagerInterface;
class UserAdmin extends Admin
{
我在仪表板中获得了一个用户链接,但是当我关注 create new 或单击以编辑我的灯具用户时(顺便说一句,呈现的路线是http://dev.url/app_dev.php/admin/company/user/user/create)我得到一个 500 服务器错误,说“类不存在”:
in /my/path/company/codebase/vendor/doctrine/common/lib/Doctrine/Common/Persistence/AbstractManagerRegistry.php at line 199
$class = $this->getAliasNamespace($namespaceAlias) . '\\' . $simpleClassName;
}
$proxyClass = new \ReflectionClass($class);
if ($proxyClass->implementsInterface($this->proxyInterfaceName)) {
$class = $proxyClass->getParentClass()->getName();
}
我已经修改了一些服务设置,我可以看到与示例不同的唯一内容是:
- 我已将命名空间更改为指向我的管理类文件夹
- %fos.user.admin.user.entity% 未在任何地方配置,因此我将其硬编码为 Company\UserBundle\Entity\User
我确实开始考虑添加 SonataUser 捆绑包,但由于我仍在使用 Symfony2 找到自己的脚,我想我现在要保持简单,并了解这里出了什么问题。鉴于该示例没有将其作为依赖项提及,我假设我可以在没有它的情况下运行?