我正在尝试使用扩展名Metamodels为Contao中的项目更改PHP脚本。 This是应该有效的源脚本:
我更改了代码this。
但我得到致命的PHP错误,我错过了什么?我现在正在进入PHP,但我不是那么远。
THX
答案 0 :(得分:1)
你错过了一些引用:
echo "<br>====================== ".$arrItem[text][name]."<br>";
更改为:
echo "<br>====================== ".$arrItem['text']['name']."<br>";
以下是使用正确名称空间的代码:
// echo '<pre>' . $this->showTemplateVars() . '</pre>'; // Zeigt alle Werte aus dem MM an
// ### Tabelle mm_kalender auslesen ###
foreach ($this->data as $arrItem) {
// ============================================
// ### Detaildaten aus Fremdtabelle STANDORTE holen ###
// http://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items
// Tabelle, in der die gesuchten Informationen stehen
$objMetaModel = \MetaModels\Factory::byTableName('mm_loesungen');
// Filterobjekt erzeugen
$objFilter = $objMetaModel->getEmptyFilter();
// Einen bestehenden Filter zuordnen
// $objFilter = $objMetaModel->prepareFilter(10, array()); // 10 = Id des Filters
// Hier werden in der MM mm_standorte alle Datensätze gesucht, die im Feld 'standort' den
// Wert $arrItem['raw']['mitarbeiter']['standort'] haben
$objFilter->addFilterRule(new \MetaModels\Filter\Rules\SearchAttribute($objMetaModel->getAttribute('partner'), $arrItem['raw']['name']['partner'], $objMetaModel->getAvailableLanguages()));
// Array mit allen gefundenen Datensäten
$objItems = $objMetaModel->findByFilter($objFilter);
// ## KONTROLLE ##
// Ausgabe der gefundenen Datensätze
foreach ($objItems as $objItem) {
echo "<br>====================== ".$arrItem['text']['name']."<br>";
if (!empty($objItem)) {
$arrName = $objItem->get('name');
$arrBeschr = $objItem->get('beschreibung');
$arrAlias = $objItem->get('alias');
} else {
$arrName = "???";
$arrBeschr = "???";
$arrAlias = "???";
}
echo "Name: ".$arrName['name']." | Beschreibung: ".$arrBeschr['beschreibung']." | Alias: ".$arrAlias['alias']."<br>";
}
}