2017-12-08 1 views
1

ich ein Problem in neue symfony bekam 4.Symfony 4.0 Übersetzer Klasse nicht an die Steuerung injiziert

<?php 

namespace App\Controller; 

use App\Entity\Flight; 
use Symfony\Component\HttpFoundation\Response; 
use Symfony\Component\Routing\Annotation\Route; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use App\Form\FlightType; 
use Symfony\Component\Translation\Translator; 
use Symfony\Component\HttpFoundation\Request; 

/** 
* Class DefaultController 
* @package App\Controller 
*/ 
class DefaultController extends Controller 
{ 
    /** 
    * 
    * @Route("/") 
    * @Route("/{_locale}/", name="homepage", requirements={"_locale" = "%app.locales%"}) 
    * 
    * @param Translator $translator 
    * @param Request $request 
    * 
    * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response 
    */ 
    public function index(Translator $translator, Request $request) 
    { 
     $translated = $translator->trans('Symfony is great'); 

Fehler: Controller "App \ Controllers \ default :: Index()" setzt voraus, dass Sie einen Wert schaffen das "$ translator" -Argument. Entweder ist das Argument Nullable, und es wurde kein Nullwert angegeben, es wurde kein Standardwert angegeben oder es gibt ein nicht optionales Argument nach diesem Argument.

Configs: service.yaml

services:  
    _defaults: 
     autowire: true  
     autoconfigure: true 
     public: false 

... 
App\Controller\: 
    autowire: true  
    resource: '../src/Controller' 
    tags: ['controller.service_arguments'] 

translation.yaml

framework: 
    default_locale: '%locale%' 
    translator: 
     paths: 
      - '%kernel.project_dir%/translations' 
     fallbacks: ['en']  

Was ist falsch? Handbuch hier: http://symfony.com/doc/current/translation.html

Antwort

1

Die Antwort gefunden.

  1. bin/console cache: clear löschte Nachrichten Cache nicht. Half nur hart var/cache Ordner zu entfernen.
  2. Ich habe Action (TranslatorInterface $ translator) für die Injektion in die Controller-Aktion verwendet (Wahrscheinlich Fehler in der Dokumentation)
  3. $ translators-> trans ('id') funktioniert nicht mit IDs. Es funktioniert, wenn trans-unit searse tag verwendet wird.
Verwandte Themen