[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