Frage

Ich habe ein Modul erstellt, das admin Grid.php verwendet.Ich habe drei Tabellen zum Hinzufügen und Abrufen von Daten erstellt, kann die Daten von einem meiner Modelle jedoch nicht in der Dropdown-Auswahl der Grid.php-Datei anzeigen.

Das Problem, das ich habe, ist, dass ich aus irgendeinem Grund die Daten aus der Tabelle nicht abrufen kann, um sie in einer Dropdown-Auswahl anzuzeigen.

Bitte sehen Sie sich den folgenden Code an:

  $this->addColumn("region", array(
            "header" => Mage::helper("modulename")->__("Region"),
            "type" => 'options',
            'options'=> Mage::getModel('modulename/region')->getRegions()
            ));  

Das Obige fügt dem Raster eine Regionsspalte hinzu und ruft Daten von meinem Modell ab

Modell/Region.php

 protected function _construct(){

       $this->_init("modulename/region");

    }

    public function getRegions() {

        $regionsArray = array();
        foreach($this->getCollection() as $region){
        $regionsArray[$region->getId()] = $region->getTitle();

        }
        return $regionsArray;

    }

Die folgende Spalte ist jedoch die Ursache des Problems

        $this->addColumn('state', array(
        'header' => Mage::helper('modulename')->__('State'),
        'index' => 'state',
        'type' => 'options',
        'options'=> Mage::getModel('modulename/customerstate')->getState()
        ));

Es scheint mir nicht möglich zu sein, die Daten meines Modells in den Optionen anzuzeigen

protected function _construct(){

   $this->_init("modulename/customerstate");

}

public function getStates() {

    $statesArray = array();
    foreach($this->getCollection() as $state){
    $statesArray[$state->getId()] = $state->getState();

    }
    return $statesArray;

}

Customerstate-DB-Tabelle

+-------+----------+
|  s_id | state    |
+-------+----------+
|     1 | pending  |
|     2 | active   |
+-------+----------+

Ich habe keine Ahnung, warum das passiert, und könnte einen Rat gebrauchen, um das Problem zu lösen, da ich mich stundenlang im Kreis gedreht habe – ich erhalte keine Fehlermeldung, sondern nur eine leere Auswahloption im Raster ...

War es hilfreich?

Lösung

Vielen Dank an @kalpesh Mehta und @Marius für ihre Beiträge,

Ich habe den Fehler mit dem folgenden Code gelöst, wie in dem früheren Beitrag, den ich anrief, erwähnt->getState() Anstatt von ->getStates()

Grid.php

            $this->addColumn('state', array(
            'header' => Mage::helper('modulename')->__('State'),
            'index' => 'state',
            'type' => 'options',
            'options'=> Mage::getModel('modulename/customerstate')->getStates()
            ));

Modell/CustomerState.php

  public function getStates() {

        $statesArray = array();
        foreach($this->getCollection() as $state){
            $statesArray[$state->getId()] = $state->getState();

        }
        return $statesArray;

    }

Andere Tipps

Auf den ersten Blick scheinen Sie auf dem richtigen Weg zu sein.
Das Problem ist, wie der Fehler vermuten lässt, folgendes:

Mage::getSingleton('my/modulename')

Höchstwahrscheinlich kehrt dies zurück null.
Aus dem Code, den Sie gepostet haben, kann ich das schließen My ist Ihr Namespace und Module ist der Modulname (Duh!).
Ich denke, der obige Code sollte lauten:

Mage::getSingleton('module/[entity_name_here]');

Wo [entity_name_here] sollte der Alias ​​für Sie sein region Modell

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top