传递给***的Symfony Argument n必须是Swift_Mailer的实例,null Giveno

时间:2019-02-16 12:32:32

标签: symfony symfony-3.4 symfony-4.2

我正在使用Symfony 3.4和自动装配。

他在这里以错误消息为例: Argument 2 passed to App\Controller\MainController::contact() must be an instance of Swift_Mailer, null given

我作为参数传递的每个服务都是相同的消息。

配置中可能缺少一些东西,但我不知道是什么...

有任何线索吗?

// config/services.yaml
parameters:
    google_recaptcha_site_key: '%env(GOOGLE_RECAPTCHA_SITE_KEY)%'

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

  App\:
    resource: '../src/*'
    exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'

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

// src/Controller/MainController.php
namespace App\Controller;

use Exception;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Validator\Validation;

class MainController extends AbstractController
{
 public function contact(
        Request $request,
        \Swift_Mailer $mailer,
        Validation $validation,
    ) { ... }
}

1 个答案:

答案 0 :(得分:0)

我确实设法解决了我的问题。

我启用了 Sensio \ Bundle \ FrameworkExtraBundle \ SensioFrameworkExtraBundle ,看来我们无法启用 sensio / framework-extra-bundle symfony / flex (或者可能具有其他配置)。