Domanda

Ho creato un modulo che utilizza amministratore Grid.php. Ho creato tre tavoli per aggiungere e recuperare i dati, ma non sono in grado di ottenere i dati da un miei modelli per mostrare all'interno del menu a discesa selezionare il file di Grid.php.

Il problema che ho è che per qualche motivo non riesco a ottenere i dati da sul tavolo per mostrare in un menu a discesa selezionare.

Si prega di consultare codice qui sotto:

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

È possibile che questo aggiunge una colonna Regione alla rete e riceve i dati dal mio modello

Modello / 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;

    }

Tuttavia, la colonna seguente è quello che causa il problema

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

Non riesco a ottenere i dati dal mio modello per mostrare all'interno delle opzioni

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 tabella

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

Non ho idea perché questo sta accadendo e potrebbe fare con alcuni consigli per aiutare a risolvere questo come mi sono state andando in tondo per ore - Non ricevo un errore solo un'opzione di selezione vuoto sulla griglia di partenza ...

È stato utile?

Soluzione

Grazie a @Kalpesh Mehta e @marius per i loro contributi,

ho risolto l'errore con il codice qui sotto, come già detto nel post precedente stavo chiamando ->getState() invece di ->getStates()

Grid.php

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

Modello / Customerstate.php

  public function getStates() {

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

        }
        return $statesArray;

    }

Altri suggerimenti

A prima vista si Seam di essere sulla strada giusta.
Il problema, come suggerisce l'errore, è questo:

Mage::getSingleton('my/modulename')

Molto probabilmente questo rendimenti null.
Dal codice che avete inviato posso concludere che My è il vostro spazio dei nomi e Module è il nome del modulo (Duh!).
Ho questo il codice di cui sopra dovrebbe essere:

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

dove [entity_name_here] dovrebbe essere l'alias per il modello region

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top