0
私はsymfonyの3で複数のファイルアップロードでフォームを作成したいのですが、それは働いていない、私は私のコントローラにエラーがあります。フォーム3
タイプの期待値「ドクトリン"SGBundle \ Entity \ Album#$ images"という関連フィールドの\ Common \ Collections \ Collection |配列には、代わりに "Symfony \ Component \ HttpFoundation \ File \ UploadedFile"があります。
私は2つのエンティティ:Album.phpとOneToMany関係のImage.php(アルバムには複数の画像があります)があります。
私のイメージは正常に自分のフォルダにアップロードされましたが、データベースに挿入できません。
ここに私のコントローラで自分のコードの最も重要な部分は、次のとおりです。
$images = $album->getImages();
foreach ($images as $image) {
$fileName = md5(uniqid('img_album_', true));
$fileExtension = $image->guessExtension();
$nomImageComplet = $fileName . '.' . $fileExtension;
$image->move(
$this->getParameter('albums_images_directory'),
$nomImageComplet
);
$tinified = fromFile($this->getParameter('albums_images_directory') . '/' . $nomImageComplet);
$tinified->toFile($this->getParameter('albums_images_directory') . '/' . $nomImageComplet);
$img = new Image();
$img->setExtension($fileExtension);
$img->setFile($fileName);
$em->persist($img);
$em->flush();
}
私にformType:
/**
* Class AlbumType
*
* @package SGBundle\Form
*/
class AlbumType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->
add('titre', TextType::class, [
'attr' => [
'placeholder' => 'Titre de l\'album (140 caractères max) *',
],
])
->add('miniature', FileType::class, [
'attr' => [
'placeholder' => 'Miniature de l\'album *',
], 'required' => false, 'data_class' => null,
])
->add('images', FileType::class, [
'attr' => [
'placeholder' => 'Images de l\'album *',
'accept' => 'image/*',
'multiple' => 'multiple'
], 'required' => false, 'data_class' => null, 'multiple' => true,
])
->add('envoyer', SubmitType::class)
->add('annuler', ResetType::class);
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(
[
'data_class' => Album::class,
]
);
}
はあなたの助けのために事前にありがとうござい
ようにする必要があり、あなたのフォームタイプ – kamwoz
は、私はあなたがフォームからファイルを受け取っ –
私のポストを編集しますが、関係はイメージです私たちを見ます。 VichuploadBundleを使用してファイルをアップロードします。 – zalex