Как я могу показать варианты выбора в Magento Grid
-
16-10-2019 - |
Вопрос
Я создал модуль, который использует 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
модель