开发者问题收集

使用 VichUploaderBundle 手动上传文件

2017-08-15
2177

我正在尝试使用 vichuploaderbundle 手动

my my my my my my my Entity Bookingorder链接到用户,还有其他字段并具有Vichupload字段。

bookingorder entity:

598526533

控制器:

461869068

首先,我尝试 没有

323464969

但仅使用此方法:

230924821

在这种情况下,我没有错误,但是即使在数据库中,该文件也不会上传,即 更新date 经过了充分的修改。

正如我在其他主题上阅读的那样,我需要触发学说上传,这就是为什么我试图创建一个新的 fileupload 与测试字段相等的对象, > true

1个回答

我的错误是认为我需要指定 vichUploader 字段。

但我所要做的就是创建一个这样的 FormType:

namespace BookingBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use UserBundle\Form\UserBookingOrderType;
use Symfony\Component\Form\Extension\Core\Type\FileType;

class BookingOrderType extends AbstractType {

public function buildForm(FormBuilderInterface $builder, array $options) {

$builder
->add('user', UserBookingOrderType::class)
->add('drivingLicenceFile', FileType::class, array(
"label" => false
))
;
}

public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setDefaults(array(
'cascade_validation' => true,
));
}

public function getBlockPrefix() {
return 'cp_create_booking_order';
}

}

在我的控制器中调用它:

 $docForm = $this->createForm(BookingOrderType::class, $bookingOrder);

$docForm->handleRequest($request);

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

$em = $this->getDoctrine()->getManager();
$em->persist($bookingOrder);
$em->flush();

return $this->redirectToRoute('platform_homepage');
}

最重要的是,不要忘记清除缓存!

现在,一切运行正常,上传性能完美

LedZelkin
2017-08-17