Am 22.10.14 15:35, schrieb JCL - Johannes C. Laxander:
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?

ich würde vermuten, dass deine Settings unterschiedlich tief geschachtelt sind und daher auf einer Ebene kein Array wie erwartet vorhanden ist. mach doch mal einen var_dump von $settings für die verschiedenen Konfigurationen (flexform/TS/flexform+TS)

bernd
--
http://www.pi-phi.de/cheatsheet.html
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an