[TYPO3-UG Spain] Buscar datos en otra tabla

Nicolas Puente nicolas.puente at lgb-rlp.de
Fri Mar 13 15:38:13 CET 2015


Buenas tardes:

he hecho una extensión que tiene dos módulos:
uno añade campos a fe_users (6 imputs y seis listas de selección). Este 
módulo funciona perfectamente. (neuspalten)
el segundo lee los campos de la tabla fe_users y los muestra. (userlist)
Mi problema es el siguiente:
En fe_users se graban las ids de los elementos de la selección (1 to n) 
Pongamos que hay una lista de músicos. La lista está en la tabla músicos 
y en la columna correspondiente de fe_users se graban las ids de la 
tabla correspondiente de músicos, (por ejemplo: en tabla músicos 
1-gutarrita, 2- pianista, ... en fe_users, se graban 1, 1, 2...)
Puedo leer la tabla de fe users pero no las ids que están en las 
columnas de las listas de selección.

Para acceder a las columnas de fe_users uso el repository de nuevas 
columnas, aunque la clase es de listamiembros.


ActionController:

protected $userlistRepository = NULL;

     /**
      * neuspaltenRepository
      *
      * @var \Pueusertypo3\Pueuser\Domain\Repository\NeuspaltenRepository
      * @inject
      */
     protected $neuspaltenRepository = NULL;

     /**
      * action list
      *
      * @return void
      */
     public function listAction() {

         $neuspalten2 = $this->neuspaltenRepository->findSpalten();
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($neuspalten2, 
'neuspalten2');

         $neuspalten3 = $this->neuspaltenRepository->findTabSpalten();
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($neuspalten3, 
'neuspalten3');

         $this->view->assign('neuspalten2', $neuspalten2);
     }



Repository
**
  * The repository for Neuspaltens
  */
class NeuspaltenRepository extends 
\TYPO3\CMS\Extbase\Persistence\Repository {

     /**
      * Returns a Spalten order by name
      *
      * @return void
     */
     public function findAllsotbyname(){
         $query = $this->createQuery();
         $query->setOrderings(array('name' => 
\TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING));

         return $query->execute();
     }

     /**
      * Returns a Spalten
      *
      * @return void
     */
     public function findSpalten(){

         $query = $this->createQuery();
         $query->statement(
             "SELECT fe_users.*
             FROM fe_users
             WHERE fe_users.deleted = 0 AND fe_users.disable = 0
             ORDER BY fe_users.name "
         );

         return $query->execute();
     }


     /**
      * Returns a Spalten
      *
      * @return void
     */
     public function findAllSpalten(){

         $query = $this->createQuery();
         $query->statement(
             "SELECT us.image, us.name, mu.categorymusik, 
dra.categorydrawing, li.categoryliterature, ci.categorycinematography, 
scu.categorysculpture, sta.categorystagecraft, ag.agent, 
us.anotheractivity, us.myperson
             FROM ((((((( fe_users AS us
             LEFT OUTER JOIN 
tx_pueuser_domain_model_categorycinematography AS ci ON 
us.categorycinematography = ci.uid )
             LEFT OUTER JOIN tx_pueuser_domain_model_categorydrawing AS 
dra ON us.categorydrawing = dra.uid )
             LEFT OUTER JOIN tx_pueuser_domain_model_categoryliterature 
AS li ON us.categoryliterature = li.uid )
             LEFT OUTER JOIN tx_pueuser_domain_model_categorymusik AS mu 
ON us.categorymusik = mu.uid )
             LEFT OUTER JOIN tx_pueuser_domain_model_categorysculpture 
AS scu ON us.categorysculpture = scu.uid )
             LEFT OUTER JOIN tx_pueuser_domain_model_categorystagecraft 
AS sta ON us.categorystagecraft = sta.uid )
             LEFT OUTER JOIN tx_pueuser_domain_model_agent AS ag ON 
us.agent = ag.uid )
             WHERE us.usergroup LIKE 2 AND us.disable = 0
             ORDER BY us.name "
         );

         return $query->execute();
     }


     /**
      * Returns a categoryname
      *
      * @return void
     */
     public function findTabSpalten(){

         $query = $this->createQuery();
         $query->statement(
             "SELECT ci.categorycinematography
             FROM fe_users AS us, 
tx_pueuser_domain_model_categorycinematography AS ci
             WHERE us.categorycinematography = ci.uid "
         );

         return $query->execute();
     }

}

Alguna idea?

buen fin de semana.

Nicolás


More information about the TYPO3-UG-Spain mailing list