2016-11-14 2 views
1

Ich benutze Sonata Admin und Mediabundle in Symfony 3.2 Anwendung.Sonata Sie haben eine nicht vorhandene Service- "Anfrage" angefordert

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" 

I mediabundle erzeugen, wie in doc sagte

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

Dann in meiner Einheit füge ich eine Beziehung mit Medien Einheit:

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

I konfigurieren Sonate Medien wie im Dokument angegeben:

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/ 

und dann hinzugefügt, um es zu meinem Admin

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

Wenn ich versuche, ein Bild hinzufügen erhalte ich diesen Fehler:

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"?

Also versuche ich zu verstehen, wo es $ this- verwenden> Container-> get ('request'), aber ich, dass es wie etwas verwendet in sonata Code herausfinden:

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


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

das scheint richtig zu sein . Warum bekomme ich diesen Fehler?

+0

Die Verwendung von Entwicklungsversionen wird überhaupt nicht empfohlen, warum machst du das? – greg0ire

+0

Da, wenn ich das Projekt erstellen symfony 3.2 ist auch in Dev und ich habe eine Menge Probleme mit Abhängigkeiten. – Mattia

+0

Wenn symfony 3.2 auch im Entwickler ist, benutze es nicht. Die dev-Version ist nicht für dich gedacht, sondern für Leute, die einen bc-breaking-Wechsel zur nächsten Version beitragen wollen. – greg0ire

Antwort

0

ich Leute schreiben diese Antwort verwenden, die nicht wollen Sonate Klassifizierung Bundle mit sonata Medienbündel verwenden (wie ich), so haben 4.x-dev zu verwenden. Ich mache eine commit, um es kompatibel mit Symfony3 (scheint). Hoffe diese Hilfe.

-1

Der Anfrage-Service existiert nicht mehr mit Symfony3.

Sie müssen den request_stack Service statt

+0

Nennen Sie niemals 'dev-master'-Versionen, diese sind für die Entwicklung gedacht. – greg0ire

+0

Sie sagen nicht? –

+0

Wenn Sie meine Frage lesen, können Sie sehen: if ($ this-> container-> hat ('request_stack')) { return $ this-> container-> get ('request_stack') -> getCurrentRequest(); } zurückgeben $ this-> container-> get ('request'); – Mattia

Verwandte Themen