使用FosUser进行Sonata Admin配置,但*不是* SonataUser

时间:2012-08-27 18:14:35

标签: symfony symfony-2.1 symfony-sonata sonata-admin

根据标题我正在使用Sonata Admin和FosUser。

Sonata Admin对我的普通实体工作正常;我可以做通常的CRUD事情。

然后我按照文档中的this示例连接到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
{

我在仪表板中获得了一个用户链接,但是当我按照创建新建或点击编辑我的灯具用户(BTW渲染路线为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
  3. 我确实开始考虑添加SonataUser捆绑包但是因为我仍然在寻找Symfony2的脚,我想我现在要保持简单,并在这里找到错误的东西。鉴于这个例子没有提到它作为一个依赖我假设我可以没有它吗?

0 个答案:

没有答案