奏鸣曲管理员捆绑symfony
sonata admin bundle symfony
我尝试安装 sonata admin bundle 来管理我的用户。
我使用 FOS 用户包。
我已按照说明进行操作,但出现了任何问题,但我没有找到什么。
我有错误:
无法自动确定基本路由名称,请在 C:\Users\Alexandre\hubiC\www\questionnaire\app/config 中为管理员 class UserBundle\Admin\UserAdmin
定义一个默认 baseRouteName
值。 (正在从 "C:\Users\Alexandre\hubiC\www\questionnaire\app/config\routing.yml" 导入)。
在我的服务中我有:
services:
sonata.admin.user:
class: UserBundle\Admin\UserAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Content", label: "User" }
arguments:
- ~
- UserBundle\Entity\User
- ~
calls:
- [ setTranslationDomain, [UserBundle]]
在我的配置中:
imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: services.yml }
- { resource: @UserBundle/Resources/config/admin.yml }
sonata_block:
default_contexts: [cms]
blocks:
# Enable the SonataAdminBundle block
sonata.admin.block.admin_list:
contexts: [admin]
# Your other blocks
和文件 UserAdmin:
<?php //
namespace UserBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;
class UserAdmin extends Admin
{
// Fields to be shown on create/edit forms
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('nom')
->add('prenom')
->add('adresse')
->add('npa')
->add('localite')
->add('entreprise')
;
}
// Fields to be shown on filter forms
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('nom')
->add('prenom')
->add('adresse')
->add('npa')
->add('localite')
->add('entreprise')
;
}
// Fields to be shown on lists
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('nom')
->add('prenom')
->add('adresse')
->add('npa')
->add('localite')
->add('entreprise')
;
}
}
文件夹 UserBundle/Admin 中的此文件。
怎么了?
谢谢
我不确定,为什么奏鸣曲不会自动为您生成 baseRouteName。我假设您定义了自定义目录结构或自定义 class 名称。您可以转储 return 的 getBaseRouteName 方法。该方法用于生成路由信息。
您也可以定义它(不是自动的):
protected $baseRouteName = 'your_name';
protected $baseRoutePattern = 'your_name';
您可以通过 app/console router:debug 在控制台中检查路由器,您从管理员那里得到的新路由应该在那里
文档中描述了路由问题:
https://sonata-project.org/bundles/admin/2-3/doc/reference/routing.html
我尝试安装 sonata admin bundle 来管理我的用户。
我使用 FOS 用户包。
我已按照说明进行操作,但出现了任何问题,但我没有找到什么。
我有错误:
无法自动确定基本路由名称,请在 C:\Users\Alexandre\hubiC\www\questionnaire\app/config 中为管理员 class UserBundle\Admin\UserAdmin
定义一个默认 baseRouteName
值。 (正在从 "C:\Users\Alexandre\hubiC\www\questionnaire\app/config\routing.yml" 导入)。
在我的服务中我有:
services:
sonata.admin.user:
class: UserBundle\Admin\UserAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Content", label: "User" }
arguments:
- ~
- UserBundle\Entity\User
- ~
calls:
- [ setTranslationDomain, [UserBundle]]
在我的配置中:
imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: services.yml }
- { resource: @UserBundle/Resources/config/admin.yml }
sonata_block:
default_contexts: [cms]
blocks:
# Enable the SonataAdminBundle block
sonata.admin.block.admin_list:
contexts: [admin]
# Your other blocks
和文件 UserAdmin:
<?php //
namespace UserBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;
class UserAdmin extends Admin
{
// Fields to be shown on create/edit forms
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('nom')
->add('prenom')
->add('adresse')
->add('npa')
->add('localite')
->add('entreprise')
;
}
// Fields to be shown on filter forms
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('nom')
->add('prenom')
->add('adresse')
->add('npa')
->add('localite')
->add('entreprise')
;
}
// Fields to be shown on lists
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('nom')
->add('prenom')
->add('adresse')
->add('npa')
->add('localite')
->add('entreprise')
;
}
}
文件夹 UserBundle/Admin 中的此文件。
怎么了?
谢谢
我不确定,为什么奏鸣曲不会自动为您生成 baseRouteName。我假设您定义了自定义目录结构或自定义 class 名称。您可以转储 return 的 getBaseRouteName 方法。该方法用于生成路由信息。
您也可以定义它(不是自动的):
protected $baseRouteName = 'your_name';
protected $baseRoutePattern = 'your_name';
您可以通过 app/console router:debug 在控制台中检查路由器,您从管理员那里得到的新路由应该在那里
文档中描述了路由问题: https://sonata-project.org/bundles/admin/2-3/doc/reference/routing.html