Sonata您已经要求不存在的服务"请求"

时间:2016-11-14 12:30:19

标签: symfony sonata-admin symfony-sonata sonata

我在symfony 3.2应用程序中使用sonata admin和mediabundle。

composer.json

"sonata-project/admin-bundle": "3.x-dev",
"sonata-project/doctrine-orm-admin-bundle": "4.x-dev",
"sonata-project/media-bundle": "4.x-dev",
"sonata-project/intl-bundle": "2.x-dev"

我在doc

中生成了mediabundle
  

sf3 sonata:easy-extends:generate --dest = src SonataMediaBundle

然后在我的实体中,我添加了与媒体实体的关系:

   /**
     * @ORM\OneToOne(targetEntity="Application\Sonata\MediaBundle\Entity\Media", cascade={"persist"})
     * @ORM\JoinColumn(name="image_id", referencedColumnName="id", onDelete="SET NULL")
     */
    protected $image;

我在doc中配置了奏鸣曲媒体:

sonata_media:
    db_driver: doctrine_orm
    default_context: default
    contexts:
        default:
            providers:
                - sonata.media.provider.image
                - sonata.media.provider.file
            formats:
                small: { width: 100 , quality: 70}
                big:   { width: 500 , quality: 70}
    filesystem:
        local:
            directory:  "%kernel.root_dir%/../web/uploads/media"
    cdn:
        server:
            path: /uploads/media # http://media.sonata-project.org/

然后将其添加到我的管理员

->add('logo', 'sonata_type_model_list', array('required' => false), array(
                    'link_parameters' => ['provider'=>'sonata.media.provider.image'],
                    'label'    => 'Logo',
                    'context'  => 'default',
                    'required' => false,
                ))

当我尝试添加图片时,我收到此错误:

  

您已请求不存在的服务"请求"。你的意思是一个吗?   其中:" data_collector.request"," monolog.logger.request",   " request_stack"," router.request_context",   " sonata.intl.locale_detector.request_stack&#34 ;,   " validate_request_listener"

所以我尝试了解它在哪里使用$ this-> container-> get(' request')但我发现在奏鸣曲代码中它使用的内容如下:

if ($this->container->has('request_stack')) {
            return $this->container->get('request_stack')->getCurrentRequest();
        }


return $this->container->get('request');

这似乎是正确的。 那么为什么我会收到这个错误?

2 个答案:

答案 0 :(得分:0)

我把这个答案写给那些不想使用奏鸣曲分类包和奏鸣曲媒体包(像我一样)的人,所以必须使用4.x-dev。 我创建一个commit以使其与symfony3(似乎)兼容。 希望这有帮助。

答案 1 :(得分:-1)

Symfony3不再存在请求服务。

您必须使用request_stack服务