3

根据标题,我正在使用 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();
    }

我已经修改了一些服务设置,我可以看到与示例不同的唯一内容是:

  1. 我已将命名空间更改为指向我的管理类文件夹
  2. %fos.user.admin.user.entity% 未在任何地方配置,因此我将其硬编码为 Company\UserBundle\Entity\User

我确实开始考虑添加 SonataUser 捆绑包,但由于我仍在使用 Symfony2 找到自己的脚,我想我现在要保持简单,并了解这里出了什么问题。鉴于该示例没有将其作为依赖项提及,我假设我可以在没有它的情况下运行?

4

0 回答 0