Я новичок в 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.
Кто-то может помочь мне, пожалуйста 🙂
Задача ещё не решена.
Других решений пока нет …