您已请求不存在的服务“file.uploader” - Symfony3

时间:2017-06-23 12:24:47

标签: php

我刚刚在symfony中创建了一个新服务:

// AppBundle\Services\FileUploader.php

<?php

namespace AppBundle\Services;

class FileUploader {
    private $imagesDir;
    private $videosDir;

    public function __construct($imagesDir, $videosDir) {
        $this->imagesDir = $imagesDir;
        $this->videosDir = $videosDir;
    }

    public function upload($form) {
    ///...
    ///...
        }
        return $form;
    }
}

我还在services.yml文件中添加了以下内容:

// app\config\services.yml

file.uploader:
    class: AppBundle\Services\FileUploader
    arguments:
        - '%images_directory%'
        - '%videos_directory%'

但是,当我尝试使用以下命令从我的控制器调用它时

$uploadModel = $this->get('file.uploader');

我收到以下错误:

  

您已请求不存在的服务“file.uploader”。

即使我在config.yml中指定了我的参数并运行了

php bin/console debug:container file.upload --show-arguments

我明白了:

Service ID       file.upload
Class            AppBundle\Services\FileUploader

任何想法

2 个答案:

答案 0 :(得分:0)

服务通常保存在缓存中。 你试过打扫它吗?

php app/console cache:clear --env=prod
php app/console cache:clear --env=dev

答案 1 :(得分:0)

您应将服务标记为public

file.uploader:
    class: AppBundle\Services\FileUploader
    public: true
    arguments:
        - '%images_directory%'
        - '%videos_directory%'