Visualizzazione dei risultati da 1 a 10 su 14

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Posto la soluzione trovata nella speranza che sia di aiuto ad qualcuno d'altro.
    Anche se si utilizza il querybuilder, è necessario specificare la entity.
    di conseguenza era necessario costruire il metodo nel repository in questo modo :

    Codice PHP:
        public function findAllReturnArray()
        {
            try {
            
    $categorie $this->createQueryBuilder('test')
                  ->
    select('c.id,c.name')
                  ->
    from('AcmeDemoBundle:Category''c')
                  ->
    getQuery()
                  ->
    getResult(Query::HYDRATE_ARRAY);
            foreach(
    $categorie as $categoria){
            
    $arrCat[$categoria['id']] = $categoria['name'];
            }        
            
    //dump($arrCat);exit();
                
    return $arrCat;
            } catch (\
    Doctrine\ORM\NoResultException $e) {
                return 
    null;
            }
        } 
    E' stato necessario inoltre adattare l'array, in modo che fosse correttamente interpretato dal metodo add per il campo choise.

    Soluzione sicuramente più elegante sarebbe stata usare i campo entity, ma per ora non ci sono riuscito, in pratica dovrebbe costruire una select option a fronte di un array entity fornito.

    http://symfony.com/it/doc/current/re...es/entity.html
    Che mestiere difficile.....essere da soli ancora di più

  2. #2
    ad esempio

    Codice PHP:

    public function buildForm(FormBuilderInterface $builder, array $options)
        {
    .....

          
    $builder->add('users','entity',[
                
    'required' => false,
                
    'class' => 'EntityBundle:User',
                
    'property' => 'email',
                
    'choices' => $options['users'],
                
    'multiple' => true,
                
    'expanded' => true,
                
    'by_reference' => false
            
    ]);

    ....
    }

    /**
         * @param OptionsResolverInterface $resolver
         */
        
    public function setDefaultOptions(OptionsResolverInterface $resolver)
        {
            
    $resolver->setDefaults(array(
                
    'users' => []
            ));
        } 
    e poi da controller:

    Codice PHP:

    return $this->createForm(new GroupType(), $entity, [
                
    'action' => $this->generateUrl(....),
                
    'method' => 'POST',
                
    'users' => $company->getUsers()
            ]); 
    dove ovviamente $company->getUsers() torna un arraycollection di entità User


    EDIT: ovviamente la mia prima risposta è sbagliata penso, non è il type "choice" che accetta un array di entità, ma quello "entity" che ti permette di fare l'associazione 1-molti tra entities
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.