【问题标题】:Symfony 3 Sonata Admin create admin using annotationSymfony 3 Sonata Admin 使用注释创建管理员
【发布时间】: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 中注册管理员时,它可以工作,但使用注释号。

汤姆

【问题讨论】:

    标签: php symfony admin sonata


    【解决方案1】:

    正如JMSDiExtraBundle 的文档所述:

    默认情况下,您只能在非服务控制器上使用提供的注解;没有扫描其他目录。

    但是,如果您还想使用注释来配置常规服务,则可以配置更多位置,如下所示。

    如果您想通过注解在您的捆绑包中配置服务,或者在任何捆绑包结构之外拥有一些服务,例如在您的 src/ 目录中,您可以使用以下配置选项,以便捆绑包将拿起它们,并将它们添加到您的依赖注入容器中:

    jms_di_extra:
        locations:
            all_bundles: false
            bundles: [FooBundle, AcmeBlogBundle]
            directories: ["%kernel.root_dir%/../src"]
    

    【讨论】:

    • @TomaszFurca,如果这回答了您的问题,请标记答案!
    猜你喜欢
    • 2018-11-02
    • 1970-01-01
    • 2021-07-14
    • 2013-03-25
    • 1970-01-01
    • 2015-04-22
    • 2018-01-20
    • 1970-01-01
    • 2015-12-30
    相关资源
    最近更新 更多