[TYPO3-german] FLUID f:form.select haben nicht die gewünschten Einträge
Robert Wildling
rowild at gmx.net
Sat Jul 13 12:38:15 CEST 2013
Hi,
Es ist mir gelungen, eine Liste aus FE-Usern anhand der FE-Group an ein
Fluid-Template zu schicken:
class TerminController extends
\TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
/**
* terminRepository
*
* @var \rowild\Lsbtermine\Domain\Repository\TerminRepository
* @inject
*/
protected $terminRepository;
/**
* areaRepository
*
* @var \rowild\Lsbtermine\Domain\Repository\AreaRepository
* @inject
*/
protected $areaRepository;
/**
* action list
*
* @return void
*/
public function listAction() {
if (!isset($this->settings['areaId'])) {
$this->view->assign('areas', "The areaId must be set in TypoScript or
FlexForm.");
} else {
$areas = $this->areaRepository->findAreas($this->settings['areaId']);
$this->view->assign("areas", $areas);
}
$termine = $this->terminRepository->findAll();
$this->view->assign('termine', $termine);
}
}
Die Repostiory-Klasse sieht so aus:
class AreaRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
/**
* findAreas
*
* @var $areaId \The ID of the fe_group that holds the sections
* @return AreaRepository
*/
public function findAreas($areaId){
$query = $this->createQuery();
$query->getQuerySettings()->setReturnRawQueryResult(TRUE);
$query->statement('SELECT * from fe_users WHERE usergroup=' . $areaId);
return $query->execute();
}
}
<f:debug>{areas}</f:debug> wirdt mir auch die derzeit 5 Ergebnisse
korrekt aus:
array(5 items)
0 => array(40 items)
1 => array(40 items)
2 => array(40 items)
3 => array(40 items)
4 => array(40 items)
Detail:
array(5 items)
0 => array(40 items)
uid => '1' (1 chars)
pid => '30' (2 chars)
tstamp => '1373545647' (10 chars)
username => '***' (9 chars)
password => '***' (34 chars)
usergroup => '1' (1 chars)
disable => '0' (1 chars)
starttime => '0' (1 chars)
endtime => '0' (1 chars)
name => 'Büro Wolfsberg' (15 chars)
first_name => '' (0 chars)
middle_name => '' (0 chars)
last_name => '' (0 chars)
address => '***' (20 chars)
telephone => '04352/***' (11 chars)
fax => '04352/***' (13 chars)
email => 'w***@***' (9 chars)
crdate => '1371153001' (10 chars)
cruser_id => '2' (1 chars)
lockToDomain => '' (0 chars)
deleted => '0' (1 chars)
uc => NULL
title => '' (0 chars)
zip => '9400' (4 chars)
city => 'Wolfsberg' (9 chars)
country => 'Österreich' (11 chars)
www => '' (0 chars)
company => '' (0 chars)
image => '' (0 chars)
TSconfig => '' (0 chars)
fe_cruser_id => '0' (1 chars)
lastlogin => '0' (1 chars)
is_online => '0' (1 chars)
tx_extbase_type => 'Tx_Extbase_Domain_Model_FrontendUser' (36 chars)
felogin_redirectPid => '' (0 chars)
felogin_forgotHash => '' (0 chars)
termin => '0' (1 chars)
zielgruppe => '0' (1 chars)
veranstaltungsort => '0' (1 chars)
vortragsperson => '0' (1 chars)
Im Fluid-Template soll nun ein Select-Menu gerendered werden mit diesen
Anweisungen:
<f:form class="tx-lsbtermine-form" method="post" action="update"
name="areaMenue" id="areaMenue">
<f:form.select prependOptionLabel="Alle Bereiche"
prependOptionValue="-1" property="area" options="{areas}"
optionLabelField="name" optionValueField="uid" value="{area.uid}"
onclick="document.areaMenue.submit();" />
</f:form>
Es werden auch 5 (insg. 6) options generiert, aber:
- es werden keine Namen angezeigt (->optionLabelField="name")
- es wird automatisch durchnummeriert, nicht nach uid
(optionValueField="uid")
- und eine "selected" gibt es nirgends (value="{area.uid}")
Was muss ich tun, damit der value in den Options-Feldern der uid
entspricht? Der "Name" (zB Büro Wolfsberg) angezeigt wird? Und der
"selected"-Value korekt gesetzt wird?
Danke! Beste Grüße, Robert
More information about the TYPO3-german
mailing list