タイトル通り、私は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();
}
私はいくつかのサービス設定をいじりましたが、例とは異なることがわかるのは次のとおりです。
- 管理者クラスフォルダを指すように名前空間を変更しました
- %fos.user.admin.user.entity%はどこにも構成されていないため、Company \ UserBundle \ Entity\Userにハードコーディングしました
私はSonataUserバンドルを追加することを検討し始めましたが、Symfony2でまだ足を踏み入れているので、今のところ物事をシンプルに保ち、ここで何が問題になっているのか理解できないと思いました。例が依存関係としてそれを言及していないとすると、私はそれなしで実行できると思いますか?