Come posso mostrare selezionare le opzioni nella griglia Magento
-
16-10-2019 - |
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 ...
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