Dependency injection Symfony 4.0转换器类未注入控制器

Dependency injection Symfony 4.0转换器类未注入控制器,dependency-injection,symfony4,Dependency Injection,Symfony4,我在新的symfony 4中遇到了一个问题 <?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\Fl

我在新的symfony 4中遇到了一个问题

<?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');
翻译

framework:
    default_locale: '%locale%'
    translator:
        paths:
            - '%kernel.project_dir%/translations'
        fallbacks: ['en']    
怎么了?手册在此: 找到了答案

  • bin/控制台缓存:清除未清除消息缓存。帮助刚硬删除var/cache文件夹
  • 我使用Action(TranslatorInterface$translator)来执行注入到控制器的操作(可能是文档中的bug)
  • $translator->trans('id')不适用于id。它在使用trans-unit源标记时工作
  • framework:
        default_locale: '%locale%'
        translator:
            paths:
                - '%kernel.project_dir%/translations'
            fallbacks: ['en']