【问题标题】:Symfony/ VichUploaderBundle: DirectoryNamerSymfony/ VichUploaderBundle: DirectoryNamer
【发布时间】:2016-05-31 09:14:47
【问题描述】:

我正在尝试实现 DirectoryNamer,但不幸的是,这会导致出现错误消息,我不知道下一步该做什么。

控制器(摘录):

if ($form->isSubmitted() && $form->isValid()) {

        $em = $this->getDoctrine()->getManager();
        $em->persist($image);
        $em->flush();
        //...
}

DirectoryNamer 服务类:

use Vich\UploaderBundle\Naming\DirectoryNamerInterface;

class ArtistDirectoryNamer implements DirectoryNamerInterface
{
    public function directoryName($image, PropertyMapping $mapping) {   
        return $image->getArtist()->getId();
    }
}

VichUploader 配置:

vich_uploader:
db_driver: orm
mappings:
    upload_artists:
        uri_prefix:         /upload/artists
        upload_destination: %kernel.root_dir%/../web/upload/artists
        directory_namer:    macms_admin.artist_directory_namer
        namer:              vich_uploader.namer_uniqid
        inject_on_load:     false
        delete_on_update:   true
        delete_on_remove:   true

...以及由此产生的错误消息:

编译错误:ArtistDirectoryNamer::directoryName() 的声明必须与 Vich\UploaderBundle\Naming\DirectoryNamerInterface::directoryName($object, Vich\UploaderBundle\Mapping\PropertyMapping $mapping) 兼容

我的代码有什么问题?在我实现 DirectoryNamer 之前,上传工作正常,文件已存储在“/upload/artists”中。

有什么提示吗?提前致谢!

【问题讨论】:

    标签: php symfony vichuploaderbundle


    【解决方案1】:

    也许您忘记了Vich\UploaderBundle\Mapping\PropertyMapping 类的use 语句?

    【讨论】:

    • 非常感谢!我添加了 use 语句(以及命名空间;)),现在它可以按预期工作了。
    【解决方案2】:

    由于 K-Phoen - 这是有效的解决方案:

    namespace Acme\Project\AdminBundle\Services;
    
    use Vich\UploaderBundle\Naming\DirectoryNamerInterface;
    use Vich\UploaderBundle\Mapping\PropertyMapping;
    
    class ArtistDirectoryNamer implements DirectoryNamerInterface
    {
        public function directoryName($image, PropertyMapping $mapping) {   
            return $image->getArtist()->getId();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      相关资源
      最近更新 更多