私はSymfony2バンドルVichUploaderBundleを使用しようとしています。データベースに保存されているレコードを使用し、Product->getPicture()
をリクエストすると、アップロードされたファイル情報が受信されます。しかし、私がそれを作成しようとすると、Symfony2ファイルをアップロードする方法新しいレコードでProduct-> getPicture()を返すnull
$product = new Product();
$product->getPicture()
私はnullオブジェクトを取得し、ファイルをアップロードすることはできません。 私の製品クラスです。
私は新しいレコードで使用しようとする方法/**
* @ORM\Entity(repositoryClass="CreLabs\Bundle\ProductBundle\Entity\ProductRepository")
* @ORM\Table(name="product")
*/
class Product {
use ORMBehaviors\Translatable\Translatable;
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=20, nullable=true)
*/
protected $sku;
/**
* @ORM\Column(type="float", scale=2)
*/
protected $price;
/**
* @ORM\Column(type="float", scale=2, nullable=true)
*/
protected $msrp_price;
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\File(mimeTypes={ "image/jpeg" })
*/
protected $picture;
/**
* @ManyToOne(targetEntity="\CreLabs\Bundle\SettingBundle\Entity\Category", inversedBy="products")
* @JoinColumn(name="category_id", referencedColumnName="id", onDelete="cascade")
* @Assert\NotNull()
*/
protected $category;
/**
* @ManyToOne(targetEntity="\CreLabs\Bundle\SettingBundle\Entity\Manufacturer", inversedBy="products")
* @JoinColumn(name="manufacturer_id", referencedColumnName="id", onDelete="cascade")
* @Assert\NotNull()
*/
protected $manufacturer;
/**
* @ORM\Column(type="datetime", nullable=false)
*/
protected $created_at;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
protected $updated_at;
$entityManager = $this->getEntityManager();
$product = new Product();
$file = $product->getPicture();
$fileName = md5(uniqid()).'.'.$file->guessExtension();
$file->move(
$productDirectory,
$fileName
);
$product->setPicture($fileName);
guessExtension
上の例外の任意のアイデア?
は、なぜあなたはそれが新しい' Product'インスタンスのnull'なので 'よりも何か他のものであることを期待する新しいレコードを作成まだ何も設定されていない?そして、*あなたが意味することは、*これによりアップロードできません。あなたは絵の具の財産です。オブジェクトではありません。 –
ちょうどVichUploaderBundleのサイトの* Usage * guideの指示に従ってください。https://github.com/dustin10/VichUploaderBundle/blob/master/Resources/doc/usage.md –
新製品写真のプロパティはまだ設定されていません。アップロードは更新レコードに対してのみ機能しますが、新しいレコード作成では機能しません – Staff