[TYPO3-german] Extbase - Flexform - / Typoscript-Settings
JCL - Johannes C. Laxander
jc at laxander.com
Wed Oct 22 15:35:31 CEST 2014
> ich würde mal spontan darauf tippen, das das $settings-Array
> so nicht ausgelesen werden kann.
> Hast Du mal versucht, ob ein einzelner Wert aus $settings
> erkannt wird, also z.B. $settings['settingX']?
So, ich habe getestet. Meine Erkenntnisse sind jetzt:
Wenn ich einen einzelnen Wert übergebe, hier ein Setting aus TypoScript,
$cruises = $this->cruiseRepository->findBySelectedCriteria($this->settings['cruise']['select']['bookingStatus']);
tritt der Fehler nicht auf, genau so, wie wenn ich nur die Flexform-Settings so übergebe:
$cruises = $this->cruiseRepository->findBySelectedCriteria($this->settings);
Erst wenn ich Flexform-Settings und TypoScript-Setting mische, fliegt mir "foreach($item as $key => $value)" um die Ohren. Anscheinend werden die TypoScript-Settings anders dargestellt / übergeben. Wer kann dazu was sagen??? Hier noch einmal mein Problem in der Gesamtheit:
Ich übergebe mit der Repository-Methode im Controller Flexform-Settings:
class CruiseController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
...
public function listAction() {
$cruises = $this->cruiseRepository->findBySelectedCriteria($this->settings);
...
}
}
class CruiseRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
public function findBySelectedCriteria($settings) {
...
foreach ($settings as $item) { <----- Zeile 66
foreach($item as $key => $value) {
...
}
}
}
}
Das funktioniert. Nun habe ich zusätzlich noch TypoScript-Settings:
plugin.tx_sccruiseplan {
settings {
settingX = abc
}
}
Nach dieser Definition im Extension-Setup funktioniert aber die Repository-Methode nicht mehr. Ich bekomme jetzt den Fehler:
#1: PHP Warning: Invalid argument supplied for foreach() in /.../Classes/Domain/Repository/CruiseRepository.php line 66
Welche Erklärung gibt es dafür und wie behebe ich dieses Problem?
Gruß, Johannes.
More information about the TYPO3-german
mailing list