Skip to content

Allow easy support for image upload in sonata forms with preview of current image in onetoone relation

Notifications You must be signed in to change notification settings

ZenSide/SonataImageBundle

Repository files navigation

ZenSide Sonata Image Bundle

Allow to easyly add Image property to an entity to be included in Sonata Forms.

Installation

Add bundle with composer

composer require zenside/sonata-image-bundle

And reference it in AppKernel.php

new ZenSide\SonataImageBundle\ZenSideSonataImageBundle(),

Configuration

After downloaded and add to AppKernel the bundle, update your database to add Image entity

php app/console doctrine:schema:update --force

Then you can add relations to Image type in your entities

class Article {
    /**
     * @ORM\OneToOne(targetEntity="ZenSide\SonataImageBundle\Entity\Image", cascade={"persist"})
     * @ORM\JoinColumn(nullable=true, onDelete="set null")
     */
    private $image;
}

If you want to directly use it in a SonataAdmin class, just use the field with type 'sonata_type_admin' or 'sonata_type_model'

$form->add('logo', 'sonata_type_admin');

Important : if you use 'sonata_type_admin' to directly include input type file in your form, you have to add the following preUpdate and prePersist listeners in your Admin class.

Just copy the following lines in your Admin class :

public function prePersist($subject)
{
    ImageAdmin::manageEmbeddedImageAdmins($this, $subject);
}
public function preUpdate($subject)
{
    ImageAdmin::manageEmbeddedImageAdmins($this, $subject);
}

About

Allow easy support for image upload in sonata forms with preview of current image in onetoone relation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages