索纳塔管理员安装问题



我试图在我的Symfony项目上安装SonataAdmin,但是在文档的第2部分结束时,当我试图继续"http://localhost:8000/admin/"时,我有一个错误:">您在 中请求了一个不存在的服务"admin.category"。(从"C:\wamp64\www\Sonata/app/config\routing.yml"导入(。确保有一个支持"sonata_admin"类型的加载器。

我不知道为什么,我给我所有的参数代码,也许它可以帮助你理解我的问题。

参数: #parameter_name:价值

服务业:

# default configuration for services in *this* file
_defaults:
    # automatically injects dependencies in your services
    autowire: true
    # automatically registers your services as commands, event subscribers, etc.
    autoconfigure: true
    # this means you cannot fetch services directly from the container via $container->get()
    # if you need to do this, you can override this setting on individual services
    public: false
admin.category:
    class: AppBundleAdminCategoryAdmin
    arguments: [~, AppBundleEntityCategory, ~]
    tags:
        - { name: sonata.admin, manager_type: orm, label: Category }

# makes classes in src/AppBundle available to be used as services
# this creates a service per class whose id is the fully-qualified class name
AppBundle:
    resource: '../../src/AppBundle/*'
    # you can exclude directories or files
    # but if a service is unused, it's removed anyway
    exclude: '../../src/AppBundle/{Entity,Repository,Tests}'
# controllers are imported separately to make sure they're public
# and have a tag that allows actions to type-hint services
AppBundleController:
    resource: '../../src/AppBundle/Controller'
    public: true
    tags: ['controller.service_arguments']
# add more services, or override services that need manual wiring
# AppBundleServiceExampleService:
#     arguments:
#         $someArgument: 'some_value'

'

缩进出错,我为您添加此文件的图片。服务代码

我认为你写category.admin服务是一个错误:Sonata/app/config/routing.yml,而不是Sonata/src/YourAdminBundle/Resources/config/services.yml

奏鸣曲管理服务必须是公共的。在您的配置中,您默认为public: false,这就是您收到此错误的原因。

所以你有两个选择:

  1. 指定管理服务的public: true(在示例文件中(
  2. 或者更好的方法:创建一个新的服务文件(例如admin.yml(,您不使用这些默认值(带有public: false_defaults键(。默认情况下,公共是true的,因此您不必通过 _defaults 指定。在这种情况下,您必须导入新文件才能config.yml工作:

app/config.yml之巅

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: services.yml }
    - { resource: admin.yml }

app/admin.yml内容:

services:
    admin.category:
        class: AppBundleAdminCategoryAdmin
        arguments: [~, AppBundleEntityCategory, ~]
        tags:
            - { name: sonata.admin, manager_type: orm, label: Category }

在终端上运行此命令。因为您可能错过了安装

php composer.phar require sonata-project/doctrine-orm-admin-bundle

在此之后,将此代码添加到您的应用程序内核中.php

app

/app内核.php

public function registerBundles()
{
    return array(
        // ...
        // set up basic sonata requirements
        // ...
        new SonataDoctrineORMAdminBundleSonataDoctrineORMAdminBundle(),
        // ...
    );
}

最新更新