VichUploaderBundle - 简化文件上传管理的PHP Symfony Bundle
// src/Entity/Product.php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity
* @Vich\Uploadable
*/
class Product
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
* @var int
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
* @var string
*/
private $image;
/**
* @Vich\UploadableField(mapping="product_images", fileNameProperty="image")
* @var File
*/
private $imageFile;
/**
* @ORM\Column(type="datetime")
* @var \DateTime
*/
private $updatedAt;
// ... 其他的getter和setter方法
public function setImageFile(?File $image = null): void
{
$this->imageFile = $image;
if (null !== $image) {
// 每次设置新文件时更新时间戳
$this->updatedAt = new \DateTimeImmutable();
}
}
public function getImageFile(): ?File
{
return $this->imageFile;
}
}
这个例子展示了如何在Symfony实体中使用VichUploaderBundle来管理产品图片上传。实体包含了必要的注解来配置上传字段和文件属性。setImageFile
方法被重写以自动更新上传文件时的时间戳。这个例子简化了原始代码,并提供了更清晰的注释。
评论已关闭