OneupUploaderBundle отношение между двумя объектами

Я новичок в stackoverflow, и я надеюсь, что вы можете мне помочь.

Я использую OneupUploaderBundle на symfony2, и он работает, я могу загрузить несколько изображений и сохранить их в своей базе данных.

Но теперь я хотел бы загрузить несколько изображений для одного «Annonce», например, у меня есть 2 объекта

Annonce

namespace TestBundle\Entity;
use Doctrine\ORM\Mapping as ORM;

/**
* Annonce
*
* @ORM\Table(name="annonce")
* @ORM\Entity(repositoryClass="TestBundle\Repository\AnnonceRepository")
*/
class Annonce
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @var string
*
* @ORM\Column(name="titre", type="string", length=255)
*/
private $titre;/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}

/**
* Set titre
*
* @param string $titre
* @return Annonce
*/
public function setTitre($titre)
{
$this->titre = $titre;

return $this;
}

/**
* Get titre
*
* @return string
*/
public function getTitre()
{
return $this->titre;
}
}

И мой образ сущности

namespace TestBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
* Image
*
* @ORM\Table(name="image")
* @ORM\Entity(repositoryClass="TestBundle\Repository\ImageRepository")
*/
class Image
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}

/**
* Set name
*
* @param string $name
* @return Image
*/
public function setName($name)
{
$this->name = $name;

return $this;
}

/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}/**
* @ORM\ManyToOne(targetEntity="TestBundle\Entity\Annonce")
* @ORM\JoinColumn(nullable=false)
*/
private $annonce;

/**
* Set annonce
*
* @param \TestBundle\Entity\Annonce $annonce
* @return Image
*/
public function setAnnonce(\TestBundle\Entity\Annonce $annonce)
{
$this->annonce = $annonce;

return $this;
}

/**
* Get annonce
*
* @return \TestBundle\Entity\Annonce
*/
public function getAnnonce()
{
return $this->annonce;
}
}

Мой EventListener

namespace TestBundle\EventListener;

use Doctrine\Common\Persistence\ObjectManager;
use Oneup\UploaderBundle\Event\PostPersistEvent;
use TestBundle\Entity\Annonce;
use TestBundle\Entity\Image;

class UploadListener
{
/**
* @var ObjectManager
*/
private $em;

public function __construct(ObjectManager $em)
{
$this->em = $em;
}

public function onUpload(PostPersistEvent $event)
{
$file = $event->getFile();

$annonce = new Annonce();
$image = new Image();
/* TEST */
$annonce->setTitre("I'am a title");
$this->em->persist($annonce);

$image->setName($file->getFilename());
$image->setAnnonce($annonce);$this->em->persist($image);
$this->em->flush();$response = $event->getResponse();
$response['files'] = [
'name' => $file->getFilename(),
'size' => $file->getSize()
];
}

Проблема в том, что когда я загружаю много изображений, у меня в Annonce столько же строк, сколько в Image.

Кто-то может помочь мне, пожалуйста 🙂

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]