【问题标题】:Sonata with Symfony3.4 - Dependency injection (Correct Sonata admin service declaration)带有 Symfony3.4 的奏鸣曲 - 依赖注入(正确的奏鸣曲管理服务声明)
【发布时间】:2017-12-21 08:59:49
【问题描述】:

我正在尝试在我的 symphony 3.4 项目上安装 Sonata (sonata-project/admin-bundle)。

很遗憾,我在添加第一个服务时出错。

services.yaml:

    admin.carrier:
    class: App\Admin\CarrierAdmin
    arguments: [~, App\Entity\Carrier, ~]
    tags:
        - { name: sonata.admin, manager_type: orm, label: Carrier }
    public: true

我在访问http://localhost/admin/dashboard 时遇到的错误:

1) FatalThrowableError

Type error: strlen() expects parameter 1 to be string, null given
in AddDependencyCallsCompilerPass.php (line 401)
at strlen(null)in AddDependencyCallsCompilerPass.php (line 401)
at AddDependencyCallsCompilerPass->replaceDefaultArguments(array('admin.carrier', 'SonataAdminBundle:CRUD'), object(Definition), null)in AddDependencyCallsCompilerPass.php (line 67)
at AddDependencyCallsCompilerPass->process(object(ContainerBuilder))in Compiler.php (line 141)
at Compiler->compile(object(ContainerBuilder))in ContainerBuilder.php (line 753)
at ContainerBuilder->compile()in Kernel.php (line 634)
at Kernel->initializeContainer()in Kernel.php (line 137)
at Kernel->boot()in Kernel.php (line 197)
at Kernel->handle(object(Request))in index.php (line 25)

有人可以帮我吗?

【问题讨论】:

  • 也许这个字符“~”不是你服务的参数。很奇怪。

标签: symfony dependency-injection sonata-admin symfony-sonata symfony-3.4


【解决方案1】:

首先,将应用前缀添加到您的管理服务中是个好主意。 但是您在声明 CRUD 控制器时的错误。第三个参数 - 是此管理服务的 CRUD 控制器。因此,您应该使用默认值:SonataAdminBundle:CRUD

app.admin.carrier:
    class: App\Admin\CarrierAdmin
    arguments: [~, App\Entity\Carrier, SonataAdminBundle:CRUD]
    tags:
        - { name: sonata.admin, manager_type: orm, group: 'carrier', label_catalogue: "admin", label: 'carrier' }

【讨论】:

  • 非常感谢!那好多了!只是另一个问题:Admin service "code" not found in admin pool. 我正在寻找解决方法。
  • @Toon,我认为最好关闭此主题并创建另一个包含有关问题的完整信息的主题。并将答案标记为正确。
猜你喜欢
  • 2016-08-18
  • 2017-06-03
  • 1970-01-01
  • 2018-04-30
  • 2018-08-03
  • 2019-05-17
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
相关资源
最近更新 更多