Symfony 3 Sonata Admin 使用注释创建管理员
Posted
技术标签:
【中文标题】Symfony 3 Sonata Admin 使用注释创建管理员【英文标题】:Symfony 3 Sonata Admin create admin using annotation 【发布时间】:2016-07-08 04:10:21 【问题描述】:我尝试仅使用来自 JMSDiExtraBundle 的注释来创建奏鸣曲管理员。
管理员:
/**
* @DI\Service("sonata.admin.company")
* @DI\Tag("sonata.admin", attributes =
* "manager_type" = "orm",
* "label"="Category",
* "group"="Orders"
* )
*/
class CompanyAdmin extends Admin
/**
* @DI\InjectParams(
* "code" = @DI\Inject("%admin__company__class%"),
* "class" = @DI\Inject("%admin__company__code%"),
* "baseControllerName" = @DI\Inject("%admin__company__base_controller_name%")
* )
*/
public function __construct($code, $class, $baseControllerName)
parent::__construct($code, $class, $baseControllerName);
和带参数的文件:
parameters:
# parameter_name: value
admin__company__class: AppBundle\Entity\Company
admin__company__base_controller_name: SonataAdminBundle:CRUD
admin__company__code: admin.company
当我在 yml 中注册管理员时,它可以工作,但使用注释号。
汤姆
【问题讨论】:
【参考方案1】:正如JMSDiExtraBundle 的文档所述:
默认情况下,您只能在非服务控制器上使用提供的注解;没有扫描其他目录。
但是,如果您还想使用注释来配置常规服务,则可以配置更多位置,如下所示。
如果您想通过注解在您的捆绑包中配置服务,或者在任何捆绑包结构之外拥有一些服务,例如在您的 src/ 目录中,您可以使用以下配置选项,以便捆绑包将拿起它们,并将它们添加到您的依赖注入容器中:
jms_di_extra:
locations:
all_bundles: false
bundles: [FooBundle, AcmeBlogBundle]
directories: ["%kernel.root_dir%/../src"]
【讨论】:
@TomaszFurca,如果这回答了您的问题,请标记答案!以上是关于Symfony 3 Sonata Admin 使用注释创建管理员的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Sonata Admin(Symfony 3.3、PHP 7)中使用自定义 javascript 为模态窗口扩展模板?
Symfony - Sonata “在管理池中找不到管理服务“app.admin.post”。”
Symfony 2.3.6 和 Sonata Admin Bundle:空仪表板,没有错误
Symfony 4 + Sonata + Sonata Doctrine ORM Admin Bundle:错误:没有要处理的元数据类