我正在尝试使用扩展元模型为我在 Contao 中的项目更改 PHP 脚本。这是应该工作的源脚本:
我改变了这样的代码。
但是我得到了一个致命的 PHP 错误,我错过了什么吗?我现在正在进入 PHP,但我还没有到此为止。
谢谢
您在这里错过了一些报价:
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>";
}
}