Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 23
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
SeasonType
0.00% covered (danger)
0.00%
0 / 23
0.00% covered (danger)
0.00%
0 / 2
6
0.00% covered (danger)
0.00%
0 / 1
 buildForm
0.00% covered (danger)
0.00%
0 / 20
0.00% covered (danger)
0.00%
0 / 1
2
 configureOptions
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace App\Form;
4
5use App\Entity\Movie;
6use App\Entity\Season;
7use Doctrine\ORM\EntityRepository;
8use Symfony\Bridge\Doctrine\Form\Type\EntityType;
9use Symfony\Component\Form\AbstractType;
10use Symfony\Component\Form\FormBuilderInterface;
11use Symfony\Component\OptionsResolver\OptionsResolver;
12
13class SeasonType extends AbstractType
14{
15    public function buildForm(FormBuilderInterface $builder, array $options): void
16    {
17        $builder
18            ->add('number')
19            ->add('nbEpisodes')
20            ->add('movie', EntityType::class, [
21                "multiple" => false,
22                "expanded" => false, // false: dropdown / true: radiobutton
23                "class" => Movie::class,
24                "choice_label" => "title",
25                // ? https://symfony.com/doc/5.4/reference/forms/types/entity.html#query-builder
26                "query_builder" => function(EntityRepository $entityrepository){
27                    // TODO : requete perso : tri par titre
28                    // TODO : requete perso : que le type série
29                    return $entityrepository->createQueryBuilder('m')
30                        // ! Error: Class App\Entity\Movie has no field or association named type.name    
31                        // ->where("m.type.name = 'série'")
32                        // * on fait une jointure sur l'objet Type
33                        ->join("m.type", "t")
34                        // on fait le where sur les propriété de l'objet Type
35                        ->where("t.name = 'série'")
36                        ->orderBy('m.title', 'ASC');
37                }
38            ])
39        ;
40    }
41
42    public function configureOptions(OptionsResolver $resolver): void
43    {
44        $resolver->setDefaults([
45            'data_class' => Season::class,
46        ]);
47    }
48}