Friday, June 10, 2016

Create form for Uploadable Doctrine Extension

Leave a Comment

I'd like to use Uploadable to save some images (i.e. profile picture for users). I'm using many other Doctrine Extensions already (softdeletable, timestampable, blameable, etc.) so I thought it would be nice to use this one as well.

However, I don't know how to set up my Forms. The StofDoctrineExtensionsBundle documentation gives this example:

$document = new Document(); $form = $this->createFormBuilder($document)     ->add('name')     ->add('myFile')     ->getForm() ;  //(...)  $uploadableManager->markEntityToUpload($document, $document->getMyFile()); 

In this example, is name the name of the Document or the name of the file?

Atlantic18/DoctrineExtensions's documentation adds a path, name, mimeType and size to an entity, to there is no myFile attribute.

Can anybody explain how to set up a Form for a Uploadable Doctrine entity? I couldn't find any documentation or good example that helped me further.

1 Answers

Answers 1

Entity

Like you've discovered, the documentation of DoctrineExtensions itself sheds some light on how to configure the Uploadable extension to use your entity.

Mainly by adding the @Gedmo\Uploadable annotation to your entity and @Gedmo\UploadableFilePath to the property that will contain the file path ($filePath for example).

Form

With the ->add() method of the form-builder you add fields to the form. The first parameter specifies the property-name of the corresponding entity. So ->add('myFile') would add a field for the property $myFile.

What you need to do is add a (file) field to the form for the property that will contain the file path ($filePath for example), and mark that property:

$form = $this->createFormBuilder($entity)     ->add('filePath');  $uploadableManager->markEntityToUpload($entity, $entity->getFilePath()); 

In other words: myFile in your example should be replaced with filePath in my example, and whatever the actual property is in your real code.

If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment