Voici mon projet,
J'ai un site de gestion de classe qui fonctionne bien mais j'aimerais intégrer une section cahier de note pour garder des traces des résultats de mes élèves.
Le problème que je rencontre c'est qu'il est possible de faire des entrés pour un jeunes à la fois ce qui devient un peut long. Ce que j'aimerais c'est de réussir c'est d'avoir dans la même page la liste de mes jeunes et juste à côté de leur nom une case pour entré la note obtenu pour tel ou tel évaluation.
Je vais insérer le code déjà écrit mais je vous préviens il est très basique. Je ne voulais pas me lancer sans d'abord comprendre cette étape importante.
Alors j'ai une classe enfant:
par la suite un entity Resultat(très bref)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 <?php namespace Tic\GestionBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * Enfant * * @ORM\Table() * @ORM\Entity(repositoryClass="Tic\GestionBundle\Entity\EnfantRepository") */ class Enfant { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var string * * @ORM\Column(name="nom", type="string", length=255) */ private $nom; /** * @ORM\OneToOne(targetEntity="Resultat") */ private $note; /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set nom * * @param string $nom * @return Enfant */ public function setNom($nom) { $this->nom = $nom; return $this; } /** * Get nom * * @return string */ public function getNom() { return $this->nom; } /** * Set note * * @param \Tic\GestionBundle\Entity\Resultat $note * @return Enfant */ public function setNote(\Tic\GestionBundle\Entity\Resultat $note = null) { $this->note = $note; return $this; } /** * Get note * * @return \Tic\GestionBundle\Entity\Resultat */ public function getNote() { return $this->note; } }
Dans mes formulaires j'ai écrit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 <?php namespace Tic\GestionBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * Resultat * * @ORM\Table() * @ORM\Entity(repositoryClass="Tic\GestionBundle\Entity\ResultatRepository") */ class Resultat { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var string * * @ORM\Column(name="note", type="string", length=255) */ private $note; /** * @ORM\OneToOne(targetEntity="Enfant") */ private $enfant; /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set note * * @param string $note * @return Resultat */ public function setNote($note) { $this->note = $note; return $this; } /** * Get note * * @return string */ public function getNote() { return $this->note; } /** * Set enfant * * @param \Tic\GestionBundle\Entity\Enfant $enfant * @return Resultat */ public function setEnfant(\Tic\GestionBundle\Entity\Enfant $enfant = null) { $this->enfant = $enfant; return $this; } /** * Get enfant * * @return \Tic\GestionBundle\Entity\Enfant */ public function getEnfant() { return $this->enfant; }
Enfant
Et dans le formulaire Resultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php namespace Tic\GestionBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface; class EnfantType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('nom') ->add('note') ; } public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( 'data_class' => 'Tic\GestionBundle\Entity\Enfant' )); } public function getName() { return 'tic_gestionbundle_enfanttype'; } }
J'espère avoir été clair dans mes explications alors si quelqu'un peut m'aider se serait très apprécié.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 <?php namespace Tic\GestionBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface; use Tic\GestionBundle\Entity\EnfantRepository; class ResultatType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('enfant', 'entity', array( 'class' => 'TicGestionBundle:Enfant', 'property' => 'nom', 'query_builder' => function(EnfantRepository $r) { return $r->getSelectList(); } )) ->add('note') ; } public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( 'data_class' => 'Tic\GestionBundle\Entity\Resultat' )); } public function getName() { return 'tic_gestionbundle_resultattype'; } } Et dans le repository d'Enfant <?php namespace Tic\GestionBundle\Entity; use Doctrine\ORM\EntityRepository; /** * EnfantRepository * * This class was generated by the Doctrine ORM. Add your own custom * repository methods below. */ class EnfantRepository extends EntityRepository { public function getSelectList() { $qb = $this->createQueryBuilder('a') ->where('a.id=1'); // On filtre sur l'attribut publication // Et on retourne simplement le QueryBuilder, et non la Query, attention return $qb; } }
Partager