[Symfony] Fotoalbum
Ik ben momenteel bezig met een nieuwe website voor mijn voetbalvereniging.
Voor deze website maak ik gebruik van het Symfony2 Framework en dat werkt allemaal prima tot nu toe. Voor het admin-paneel heb ik de SonataAdmin Bundle geïnstalleerd en ook dit heb ik allemaal aan de gang gekregen en ook beveiligd.
Nu loop ik tegen het volgende probleem aan, hoe implementeer ik een fotoalbum in de website.
In het fotoalbum wil ik verschillende gallerijen hebben, daarvoor heb ik de entities Fotoboek en Foto aangemaakt:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
class Foto {
/**
* @ORM\Column(type="integer",name="id")
* @ORM\id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="Fotoboek", inversedBy="fotos")
* @ORM\JoinColumn(name="fotoboek_id", referencedColumnName="id")
*/
protected $fotoboek;
/**
* @ORM\Column(type="string")
*/
protected $bestandsnaam;
/**
* Plus de getters en setters
*/
}
?>
class Foto {
/**
* @ORM\Column(type="integer",name="id")
* @ORM\id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="Fotoboek", inversedBy="fotos")
* @ORM\JoinColumn(name="fotoboek_id", referencedColumnName="id")
*/
protected $fotoboek;
/**
* @ORM\Column(type="string")
*/
protected $bestandsnaam;
/**
* Plus de getters en setters
*/
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
class Fotoboek {
/**
* @ORM\Column(type="integer",name="id")
* @ORM\id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToMany(targetEntity="Foto", mappedBy="fotoboek")
*/
protected $fotos;
public function __construct() {
$this->fotos = new ArrayCollection();
}
/**
* @ORM\Column(type="string")
*/
protected $titel;
/**
* @ORM\Column(type="string")
*/
protected $map;
/**
* Plus de getters en setters
*/
}
?>
class Fotoboek {
/**
* @ORM\Column(type="integer",name="id")
* @ORM\id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToMany(targetEntity="Foto", mappedBy="fotoboek")
*/
protected $fotos;
public function __construct() {
$this->fotos = new ArrayCollection();
}
/**
* @ORM\Column(type="string")
*/
protected $titel;
/**
* @ORM\Column(type="string")
*/
protected $map;
/**
* Plus de getters en setters
*/
}
?>
Nu is de stap om dit op het scherm van de gebruiker te krijgen niet zo ingewikkeld, echter zit ik met het probleem hoe ik dit in het admin-paneel kan implementeren.
In het admin-paneel is het al wel gelukt, m.b.v. de SonataAdmin Bundle, om fotoboeken aan te maken, wijzigen en verwijderen. Het uploaden van 1 foto zal nog wel lukken, dat is namelijk ook gelukt met de elftalfoto's die ik bij ieder team kan uploaden.
Het grote probleem is echter: Hoe kan ik ervoor zorgen dat ik in 1 keer meerdere foto's kan toevoegen?
Voor een andere site gebruik ik Uploadify, alleen ik zie niet goed in hoe ik deze kan implementeren in de SonataAdmin Bundle.
Alvast bedankt,
Jeroen
Gewijzigd op 06/12/2013 14:34:37 door Jeroen Graafmans
Ben je niet de @ORM\Entity annotatie vergeten voor de entities?
Ik raad je aan de SonataMediaBundle te gebruiken voor het fotoalbum. Deze bundle is ook gemaakt door het Sonata Project en is dus ook volledig geïntegreerd in de SonataAdminBundle. Ik weet niet of deze wel multiple file uploads ondersteund...
PS, de @ORM\Entity annotatie heb ik wel in mijn bestand staan, vergeten met het copy-pasten.