Вопрос

Я создал модуль, который использует admin grid.php. Я создал три таблицы для добавления и извлечения данных, но я не могу получить данные из одного из моих моделей, чтобы показать внутри раскрывающегося выбора файла grid.php.

Проблема, которую у меня есть, заключается в том, что по какой -то причине я не могу получить данные на таблице, чтобы показать в выброске выбора.

См. Код ниже:

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

Приведенное выше добавляет столбец региона в сетку и получает данные из моей модели

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

    }

Однако следующий столбец - это то, что вызывает проблему

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

Кажется, я не могу получить данные из моей модели, чтобы показать внутри параметров

protected function _construct(){

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

}

public function getStates() {

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

    }
    return $statesArray;

}

CustomerTate DB Table

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

Я понятия не имею, почему это происходит, и может сделать некоторые советы, чтобы помочь решить это, так как я хожу по кругу в течение нескольких часов - я не получаю ошибку, просто пустую опцию выбора в сетке ...

Это было полезно?

Решение

Спасибо @kalpesh Mehta и @marius за их вклад,

Я решил ошибку с кодом ниже, как упомянуто в предыдущем посте, я звонил->getState() вместо ->getStates()

Grid.php

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

Model/CustomerState.php

  public function getStates() {

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

        }
        return $statesArray;

    }

Другие советы

На первый взгляд, вы шов, чтобы быть на правильном пути.
Проблема, как следует из ошибки, заключается в следующем:

Mage::getSingleton('my/modulename')

Скорее всего, это возвращается null.
Из опубликованного вами кода я могу сделать вывод, что My Ваше пространство имен и Module Имя модуля (да!).
Я это код выше должен быть:

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

куда [entity_name_here] должен быть псевдоним для вашего region модель

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top