Commits (2)
framework: framework:
default_locale: en default_locale: fr
translator: translator:
default_path: '%kernel.project_dir%/translations' default_path: '%kernel.project_dir%/translations'
fallbacks: fallbacks:
- fr - en
providers: providers:
...@@ -8,11 +8,21 @@ use Symfony\Component\Form\FormBuilderInterface; ...@@ -8,11 +8,21 @@ use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use App\Enum\Secteur; use App\Enum\Secteur;
use Dom\Entity;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use App\Repository\EtablissementRepository;
class EtablissementType extends AbstractType class EtablissementType extends AbstractType
{ {
private EtablissementRepository $etablissementRepository;
public function __construct(EtablissementRepository $etablissementRepository)
{
$this->etablissementRepository = $etablissementRepository;
}
public function buildForm(FormBuilderInterface $builder, array $options): void public function buildForm(FormBuilderInterface $builder, array $options): void
{ {
$departements = $this->etablissementRepository->findDistinctDepartements();
$builder $builder
->add('nom') ->add('nom')
->add('nature') ->add('nature')
...@@ -23,7 +33,10 @@ class EtablissementType extends AbstractType ...@@ -23,7 +33,10 @@ class EtablissementType extends AbstractType
->add('longitude') ->add('longitude')
->add('latitude') ->add('latitude')
->add('adresse') ->add('adresse')
->add('departement') ->add('departement', ChoiceType::class, [
'choices' => array_combine($departements, $departements),
'placeholder' => 'Choisissez un département',
])
->add('region') ->add('region')
->add('academie') ->add('academie')
->add('commune') ->add('commune')
......
...@@ -116,4 +116,13 @@ class EtablissementRepository extends ServiceEntityRepository ...@@ -116,4 +116,13 @@ class EtablissementRepository extends ServiceEntityRepository
->getQuery() ->getQuery()
->getResult(); ->getResult();
} }
public function findDistinctDepartements(): array
{
return $this->createQueryBuilder('e')
->select('DISTINCT e.departement')
->where('e.departement IS NOT NULL')
->orderBy('e.departement', 'ASC')
->getQuery()
->getSingleColumnResult(); // pour avoir un tableau simple de chaînes
}
} }
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<input type="hidden" name="_method" value="PUT"> {# Indique à Symfony d'interpréter la requête comme un PUT #} <input type="hidden" name="_method" value="PUT"> {# Indique à Symfony d'interpréter la requête comme un PUT #}
{{ form_widget(form) }} {{ form_widget(form) }}
<button type="submit" class="btn btn-primary">Modifier</button> <button type="submit" class="btn btn-primary">Modifier</button>
<a href="{{ path('app_etablissements') }}" class="btn btn-secondary">Annuler</a>
{{ form_end(form) }} {{ form_end(form) }}
<a href="{{ path('app_etablissements') }}" class="btn btn-secondary">Annuler</a>
{% endblock %} {% endblock %}