Próbuję utworzyć formularz z wysyłania pliku pod Symfony2 z rozszerzeniem przesyłanej na serwer (stof/doctrine)Symfony2 upload plików z rozszerzeniem stof przesyłanej na serwer
oto moje podmioty
klubu
<?php
...
class Club
{
...
/**
* @ORM\ManyToOne(targetEntity="my\TestBundle\Entity\File", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
private $logo;
...
}
plik
<?php
...
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
...
/**
* File
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="my\TestBundle\Entity\FileRepository")
* @ORM\HasLifecycleCallbacks()
* @Gedmo\Uploadable(pathMethod="getPath", callback="myCallbackMethod", filenameGenerator="SHA1", allowOverwrite=true, appendNumber=true)
*/
class File
{
...
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
* @Gedmo\UploadableFileName
*/
private $name;
...
moim typie forma clubType
$builder->add('logo', new FileType())
filetype
$builder->add('name', 'file', array(
'required' => false,
))
mój kontroler
$form = $this->createForm('my_testbundle_club', $club);
$request = $this->get('request');
if ($request->getMethod() == 'POST') {
$form->submit($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($club);
$em->flush();
}
}
ale kiedy przedstawić moją postać bez wysyłania czegokolwiek (upload nie jest obowiązkowe), mam błąd mówiąc, że nazwa kolumny w tabela Plik nie może być pusty
ale chcę, aby przesyłanie było opcjonalne, ale jeśli jest przesyłanie, nazwa jest obowiązkowa
Jak mogę to osiągnąć?
Z góry dziękuję.
Nie wiem o tym rozszerzeniu, ale czy próbowałeś dodać 'nullable = true'? Inną opcją jest dodanie wartości domyślnej, gdy jest pusta, co i tak jest prawdopodobnie przydatne (jak "fałszywy" obraz "logo"). – FeedTheWeb