Diferencia entre revisiones de «SymfonyFormsSelect»

De docs
Ir a la navegación Ir a la búsqueda
(Página creada con «Para llenar un select con consultas de SQL utilizamos "query_builder" y para elegir los campos se utiliza "choice_label", todo esto en el archivo Form\***Type, que es donde se crea el formulario $builder ->add('usuario', EntityType::class,array( 'class' => Usuario::class, 'label' => 'Usuario:', 'query_builder' => function(\App\Repository\UsuarioRepository $er) { return $er->createQueryBui…»)
 
Línea 1: Línea 1:
Para llenar un select con consultas de SQL utilizamos "query_builder" y para elegir los campos se utiliza "choice_label", todo esto en el archivo Form\***Type, que es donde se crea el formulario
Para llenar un select con consultas de SQL utilizamos "query_builder" y para elegir los campos se utiliza "choice_label", todo esto en el archivo Form\***Type, que es donde se crea el formulario.


$builder
ejemplo aqui se crea un formulario en donde uno de los select se llena con una consulta realizada con "query_builder" de donde seleccionamos los campos con "choice_label"
 
namespace App\Form;
 
use App\Entity\PrediosAdmins;
use App\Entity\Usuario;
use App\Entity\Predios;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
 
class PrediosAdminsType extends AbstractType
{
 
 
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
             ->add('usuario', EntityType::class,array(
             ->add('usuario', EntityType::class,array(
                 'class' => Usuario::class,
                 'class' => Usuario::class,
Línea 25: Línea 45:
             ))
             ))
         ;
         ;
    }
    public function configureOptions(OptionsResolver $resolver): void
    {
        $resolver->setDefaults([
            'data_class' => PrediosAdmins::class,
        ]);
    }
}

Revisión del 18:02 27 abr 2023

Para llenar un select con consultas de SQL utilizamos "query_builder" y para elegir los campos se utiliza "choice_label", todo esto en el archivo Form\***Type, que es donde se crea el formulario.

ejemplo aqui se crea un formulario en donde uno de los select se llena con una consulta realizada con "query_builder" de donde seleccionamos los campos con "choice_label"

namespace App\Form;

use App\Entity\PrediosAdmins; use App\Entity\Usuario; use App\Entity\Predios; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Bridge\Doctrine\Form\Type\EntityType;

class PrediosAdminsType extends AbstractType {


   public function buildForm(FormBuilderInterface $builder, array $options): void
   {
       $builder
           ->add('usuario', EntityType::class,array(
               'class' => Usuario::class,
               'label' => 'Usuario:',
               'query_builder' => function(\App\Repository\UsuarioRepository $er) {
                   return $er->createQueryBuilder('u')        
                               ->andWhere('u.rol = :val')            
                               ->setParameter('val', 5);
               },
               'choice_label' => function(\App\Entity\Usuario $er) {
                   return $er->getApellidos().", ".$er->getNombres()." ( ".strtolower($er->getEmail())." )";
               },
               'attr'  => [
                   'class' => 'form-control custom-select text-uppercase'
               ]
           ))
           ->add('predio', EntityType::class,array(
               'class' => Predios::class,
               'label' => 'Predio:',
               'attr'  => [
                   'class' => 'form-control custom-select text-uppercase'
               ]
           ))
       ;
   }
   public function configureOptions(OptionsResolver $resolver): void
   {
       $resolver->setDefaults([
           'data_class' => PrediosAdmins::class,
       ]);
   }

}