[TYPO3-german] Extbase macht mich verrückt
Christian Leicht
usenet at schani.com
Mon Mar 9 14:35:46 CET 2015
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 at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>
>
More information about the TYPO3-german
mailing list