Как я могу экспортировать поля, которые не отображаются в сетке администратора?
-
16-10-2019 - |
Вопрос
У меня есть пользовательская сетка администратора, которая показывает отзыв, предоставленные клиентами во время оформления заказа. У меня есть 19 полей в custom_table, включая entity_id, create_at и updated_at.
Это мой вид формы:
Это мой сетка:
Все работает нормально. Теперь, когда я экспортирую сетку как CSV/ XML/ Excel, она только экспортирует поля в сетке, но я хочу, чтобы все данные в моей базе данных были экспортированы. Как я могу это сделать? Также, если я применяю фильтр в этой сетке, должны быть экспортированы только эти ряды.
примечание: Имя клиента и email_id отображаются путем присоединения к таблице продаж/заказа
Это моя функция _prepareCollection () в grid.php
protected function _prepareCollection(){
$collection = Mage::getModel('feedbacktest/feedback')->getCollection();
// join the order table to display in the grid.
$collection->join('sales/order', 'increment_id=order_id', array('orderId'=>'entity_id', 'custName'=>'concat(customer_firstname," ",customer_lastname)', 'custEmail'=>'customer_email'), null,'left');
$this->setCollection($collection);
return parent::_prepareCollection();
}
Сбор дает мне все данные (как мне нужно), но экспортируемые данные содержат только данные в сетке.
Кто -нибудь может помочь мне в этом?
Решение
Вы можете добавить в свою сетку столбцы, которые видны только при экспорте.
в _prepareColumns()
Метод добавьте это:
if ($this->_isExport) {
$this->addColumn('col_id', array(
'header' => Mage::helper('helper_alias')->__('Header'),
'index' => 'col_id',
));
}
Как и в любой другой колонке, просто завернут if ($this->_isExport) {
.