1

我正在尝试使用扩展元模型为我在 Contao 中的项目更改 PHP 脚本。是应该工作的源脚本:

我改变了这样的代码

但是我得到了一个致命的 PHP 错误,我错过了什么吗?我现在正在进入 PHP,但我还没有到此为止。

谢谢

4

1 回答 1

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>";
    }
}
于 2015-06-29T12:26:33.810 回答