2015-01-20 3 views
1

Я создал новый атрибут customer 'personal_number' и теперь хочу показать его в новом столбце в adminhtml sales_order_grid. Я сделал все, чтобы показать столбец в сетке (переписать класс в config.xml), создал MyName_MyModule_Block_Adminhtml_Order_Grid, где нужно переписать _getCollectionClass() и _prepareColumns(). Моя проблема заключается в _getCollectionClass(), где мне нужно сделать запрос базы данных, чтобы присоединить данные атрибутов клиентов к коллекции заказов. Becouse Я очень новый в Magento, логика magento-way запросов для меня очень трудно следовать. Может кто-то помочь мне написать MySql запрос ниже в Magento-способ получить значение атрибута моего клиента personal_number "в сетке заказов:Magento Collection Query

SELECT Orders.*, Customers.customer_id, Custumer.personal_namber FROM Orders INNER JOIN Customers ON Orders.customer_id = Customer.customer_id 

ответ

0

Вы, как правило, не нужно менять _getCollectionClass, а сделать присоединиться на сетка, на _prepareCollection. То есть:

protected function _prepareCollection() 
{ 
    $collection = Mage::getResourceModel($this->_getCollectionClass()); 

    //we changed mysql query, we added inner join to order item table 
    $collection->join(
    // Alias => Table name 
    array('customers' => "customer/customer"), 
    // Join condition 
    'main_table.customer_id = customer.customer_id', 
    // Fields to select 
    array('personal_number'=>'personal_number'); 
    $this->setCollection($collection); 
    return parent::_prepareCollection(); 
} 

Взято отсюда, посмотрите на всю статью для получения дополнительной помощи: http://inchoo.net/magento/how-to-extend-magento-order-grid/

+0

это была моя ошибка копирования/вставки ... Я Мента _prepareCollection() ... Но я не могу выяснить, как писать $ collection-> join ('some_query') для INNER JOIN Customers ON Orders.customer_id = Customer.customer_id, чтобы получить мое пользовательское значение атрибута personal_number – nermingk

+0

Отредактировав ответ на соединение для таблицы клиентов и добавив некоторые комментарии, мы надеемся, он работает или помогает вам получить решение. –

Смежные вопросы