<?php
namespace App\Form;
use App\Entity\Competence;
use App\Entity\Sequence;
use App\Repository\CompetenceRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class SequenceType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('titre')
->add('Objectif')
->add('Attendu')
->add('prerequis')
->add('refFiliere')
->add('refCompetence', EntityType::class, [
'class' => Competence::class,
'multiple' => true,
'query_builder' => function (CompetenceRepository $er) {
$competences = $er->createQueryBuilder('c')
->andWhere('c.refCompetence IS NOT NULL')
->getQuery()
->getResult();
$idCompetence = [];
/** @var Competence $competence */
foreach ($competences as $competence){
if(!in_array($competence->getRefCompetence()->getId(),$idCompetence)){
$idCompetence[] = $competence->getRefCompetence()->getId();
}
}
return $er->createQueryBuilder('c')
->andWhere('c.id NOT IN ('.implode(", ",$idCompetence).')');
},
])
->add('refSavoirTechnologique')
->add('periode')
->add('refThemeSequence')
->add('bilan')
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Sequence::class,
]);
}
}