[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