2016-11-14 11 views
1

symfony 3.2アプリケーションでsonata adminとmediabundleを使用しています。Sonata存在しないサービス "リクエスト"をリクエストしました

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" 

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

はその後、私のエンティティで、私はメディアのエンティティとの関係を追加するドキュメントに言ったように私はmediabundle生成:

/** 
    * @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, 
       )) 

にこれを追加しました:

You have requested a non-existent service "request". Did you mean one of these: "data_collector.request", "monolog.logger.request", "request_stack", "router.request_context", "sonata.intl.locale_detector.request_stack", "validate_request_listener"?

ので、私はそれはの$ this - を使うかを理解しようとします> 、コンテナ>(「リクエスト」)を取得しますが、私はソナタコードで、それはのようなものを使用することを見つける:正しいと思われること

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


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

。 なぜこのエラーが出るのですか?

+0

開発版を使用することはまったく推奨されませんが、なぜそうしていますか? – greg0ire

+0

私はプロジェクトを作成するときにsymfony 3.2もまた開発者であり、依存関係に多くの問題があります。 – Mattia

+0

symfony 3.2もdevにある場合、それを使用しないでください。開発版はあなたのためのものではありません。これは、bc-breakingの変更を次のバージョンに提供したい人向けです。 – greg0ire

答えて

0

をrequest_stackサービスを使用する必要があります。 私はcommitをsymfony3と互換性のあるものにします(そうです)。 このヘルプが必要です。

-1

リクエストサービスはSymfony3ではなくなりました。

あなたは、私が(私のような)ソナタメディアバンドルでソナタ分類バンドルを使用するので、4.xの-devのを使用する必要がしたくない人には、この答えを書く代わりに

+0

'dev-master'のバージョンにはアドバイスしないでください。 – greg0ire

+0

あなたは言っていない?あなたは私の質問を読んでいる場合 –

+0

あなたが見ることができます: 場合(の$ this - >、コンテナ>( 'request_stack')を持っている){ リターンの$ this - >、コンテナ>取得( 'request_stack') - > getCurrentRequest(); } return $ this-> container-> get( 'request'); – Mattia

関連する問題