3

タイトル通り、私はSonataAdminと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
{

ダッシュボードにユーザーリンクが表示されますが、[新規作成]に従うか、クリックしてフィクスチャユーザーを編集します(ところで、レンダリングされたルートは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