Хобрук: Ваш путь к мастерству в программировании

Magento: SQLSTATE [42S22]: столбец не найден: 1054 Неизвестный столбец «имя_биллинга» в «предложении where»

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

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'billing_name' in 'where clause'

Вот что я использую:

protected function _prepareCollection() {
    $productId = $this->getProduct()->getId();
    $ordersId = $this->getOrderIds($productId);

    $collection = mage::getModel('sales/order')
                ->getCollection()
                ->addFieldToFilter('main_table.entity_id', array('in' => $ordersId))
                ->join('sales/order_address', '`sales/order_address`.entity_id=billing_address_id', array('billing_name' => "concat(firstname, ' ', lastname)"));

    $this->setCollection($collection);
    return parent::_prepareCollection();
}

А затем, чтобы добавить столбец сетки для платежного имени:

protected function _prepareColumns() {

    $this->addColumn('billing_name', array(
        'header' => Mage::helper('AdvancedStock')->__('Bill to Name'),
        'index' => 'billing_name',
        'sortable' => true
    ));

return parent::_prepareColumns();
}

Столбец правильно возвращает все имена для выставления счетов из заказов, содержащих продукт, я просто не могу отфильтровать столбец по имени. Есть идеи?

30.06.2017

  • Вы добавили платежное имя в модель, но не в базу данных? Существует ли он при просмотре таблицы sales_flat_order (или sales_flat_order_address)? 30.06.2017
  • @CD001 CD001 Кажется, это sales_flat_order_address, хотя у меня нет доступа к phpMyAdmin для проверки таблиц. 30.06.2017

Ответы:


1

В таблицах magento sales_flat_order и sales_flat_order_address не будет столбца billing_name.
Вы можете использовать таблицу sales_flat_order_grid вместо sales_flat_order_address для получения billing_name следующим образом:

 $collection = Mage::getModel('sales/order')
                    ->getCollection()
                    ->addFieldToFilter('main_table.entity_id', array('in' => $ordersId))
                    ->join('sales/order_grid', '`sales/order_grid`.entity_id=main_table.entity_id', array('billing_name' => 'billing_name'));  

В противном случае вы можете присоединиться к таблице sales_flat_order_grid с текущей коллекцией.

03.07.2017
  • Здорово :). Спасибо 06.07.2017
  • Новые материалы

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

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

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