Das komische daran ist jetzt nur das ich im Controller ein Array bekomme
das an $wwlfeuserfiles übergeben wird.
$wwlfeuserfiles = $this->wwlfeuserfilesRepository->showFeuser();
Soweit so gut.
Aber es enthält zwar die Anzahl an Datensätzen aus der Datenbankabfrage
(SELECT * FROM fe_users), aber nicht alle Felder.
Ich übergebe es dann per
$this->view->assign('wwlfeuserfiles', $wwlfeuserfiles);
an Fluid und kann es auch auflisten:
<table class="tx_wwlfeuserfiles" >
<f:for each="{wwlfeuserfiles}" as="wwlfeuserfile">
<tr>
<td>Test: {wwlfeuserfile.uid}</td>
</tr>
</f:for>
</table>
Aber nur uid und pid haben einen Inhalt. Alle anderen Felder der Tabelle
fe_users sind leer (In der MySQL ist natürlich Inhalt vorhanden).
Christian
Am 09.03.2015 um 13:59 schrieb Marc Willmann:
Hallo Christian,
Am 09.03.15 13:54, schrieb Christian Leicht:
Der Wahnsinn,
spielen die Kommentarzeilen jetzt auch eine Rolle?
teilweise. Das @inject ist z.B. wichtig. Google nach "Dependency
Injection". Einmal verstanden willst Du nie wieder ohne DI programmieren.
Dann muss ich in \WWL\WwlFeuserfiles\Domain\Repository\WwlFeuserRepository
WwlFeuserRepository Groß schreiben? oder klein?
Die Datei unter Classes/Domain/Repository heißt aber
WwlfeuserfilesRepository.php
Klassennamen UpperCamelCase
Methodennamen lowerCamelCase
Variablen lowerCamelCase
lesbarer Code erleichtert vieles, dazu gehören auch ein paar
Konventionen, die nicht notwendigerweise technisch bedingt sind.
Allerdings gilt bei Extbase Convention over Configuration, insofern noch
ein wichtiger Grund, sich an Bewährtes zu halten.
Marc
Muss das der selbe Name sein wie in den Kommentaren?
Christian
Am 09.03.2015 um 11:53 schrieb Marc Willmann:
Hallo Christian,
ich gebe Georg dahingehend Recht, dass es Dir offenkundig noch an den
Grundlagen des MVC-Programmierens fehlt. Aber wir haben ja alle mal
angefangen. :-)
public function showFeuser(){
$query = $this->createQuery();
$query->statement("SELECT * FROM fe_users LIMIT 1");
return $query->execute();
}
im Repository. das $query->statement() gewinnt keine Eleganzpreise,
dürfte aber funktionieren.
einen Datensatz anzeigen lassen.
Mich bringt das ganze Controller Repository Module Zeugs noch um den
Verstand. Warum hat man das jetzt so umständlich auf verschiedene
Dateien verteilt?
Das geht jetzt wirklich in die MVC-Grundlagen; nur so viel: bei größeren
Projekten ist das deutlich übersichtlicher.
Die Funktion showFeuser() habe ich in der Repository abgelegt.
Aber wo rufe ich denn die Funktion jetzt auf?
Wenn ich im Controller nun
public function listAction() {
$wwlfeuser = $this->WwlfeuserRepository->showFeuser();
$this->view->assign('wwlfeuser', $wwlfeuser);
}
verwende, dann bekomme ich nur diese Fehlermeldung:
Fatal error: Call to a member function showFeuser() on a non-object in
/home/httpd/xxx/xxx/typo3conf/ext/wwl_feuserfiles/Classes/Controller/WwlfeuserfilesController.php
on line 50
PHP meckert, dass Du showFeuser() aufrusft, ohne ein passendes Objekt zu
haben. Dein Fehler liegt also bei $this->WwlfeuserRepository (welches
vermutlich in Deinem Controller nicht existiert). Füg also in Deiner
Controllerklasse sowas wie
/**
* wwlfeuserRepository
*
* @var \VENDOR\EXTNAME\Domain\Repository\WwlFeuserRepository
* @inject
*/
protected $wwlfeuserRepository = NULL;
(bitte auch Groß-Kleinschreibung beachten und VENDOR/EXTNAME natürlich
anpassen) und änder in Deinem Code
$this->WwlfeuserRepository in $this->wwlfeuserRepository
dann könnte das schon besser aussehen. :-)
Marc
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german