VichUploaderBundle - namer:父定义不存在 [英] VichUploaderBundle - namer: Parent definition does not exist

查看:19
本文介绍了VichUploaderBundle - namer:父定义不存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

config.yml

vich_uploader:
    db_driver: orm
    mappings:
        media_image:
            uri_prefix:         '%uploads_dir%'
            upload_destination: '%kernel.root_dir%/../web/uploads/images'
            namer: Vich\UploaderBundle\Naming\OrignameNamer

实体:

/**
 * Media
 * @Vich\Uploadable
 * @ORM\Table(name="medias")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\MediaRepository")
 */
class Media
{

    use TimestampableEntity;

    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     * @var string
     */
    private $imageName;

    /**
     * @Vich\UploadableField(mapping="media_image", fileNameProperty="imageName", mimeType="mimeType", size="size")
     * @var File
     */
    private $imageFile;

    /**
     * @var string
     *
     * @ORM\Column(name="mime_type", type="string", length=20, nullable=true)
     */
    private $mimeType;

    /**
     * @var string
     *
     * @ORM\Column(name="size", type="integer", nullable=true)
     */
    private $size;

当我启用 namer 时,我收到此错误:

When I enable namer, I am getting this error:

知道为什么吗?

推荐答案

(自定义)命名器应注册为服务并通过其服务名称引用.

The (custom-)namer should be registered as a service and referred to by its service name.

您可以在下面的示例中看到默认(长)配置以及 VichUploaderBundle 提供的命名服务列表:

You can see the default (long) configuration together with a list of namer services provided by VichUploaderBundle in the example below:

vich_uploader:   
  # [..]
  mappings:
    product_image_file:
      # [..]
      namer:
        # one of: vich_uploader.namer_{uniqid,origname,property,hash}
        service: vich_uploader.namer_origname

<小时>

作为参考,以下是命令 bin/console debug:container 列出的所有命名服务:


For reference, here are all namer services as listed by the command bin/console debug:container:

vich_uploader.namer_base64                Vich\UploaderBundle\Naming\Base64Namer
vich_uploader.namer_directory_property    Vich\UploaderBundle\Naming\PropertyDirectoryNamer
vich_uploader.namer_hash                  Vich\UploaderBundle\Naming\HashNamer
vich_uploader.namer_origname              Vich\UploaderBundle\Naming\OrignameNamer
vich_uploader.namer_property              Vich\UploaderBundle\Naming\PropertyNamer
vich_uploader.namer_uniqid                Vich\UploaderBundle\Naming\niqidNamer

这篇关于VichUploaderBundle - namer:父定义不存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆