2016-12-05 3 views
0

Я пытаюсь создать собственный список для моего модуля на Prestashop 1.6, и мне нужно получить данные из трех разных таблиц. Моя проблема в переменной $this->_filter, как я могу это сделать?Фильтр на моем модуле для Prestashop 1.6

мне нужно сделать, это:

$query = ' 
SELECT s.*, pl.* 
FROM '._DB_PREFIX_.'`scd_gift` s 
INNER JOIN '._DB_PREFIX_.'product_lang pl 
ON s.id_product = pl.id_product 
WHERE s.`id_gift_type` = '.(int)$id_gift_type.' and id_lang='.$id_lang; 

Вот моя функция:

public function getCustomListHostessGifts() { 
    $this->table = 'scd_gift'; 
    $this->list_id = 'hostess_gift'; 
    $this->lang = true; 
    $this->identifier = 'id_scd_gift'; 
    $this->_orderBy = 'id_product'; 
    $this->_orderWay = 'DESC'; 

    $this->addRowAction('delete'); 

    $this->fields_list = (array(
     'id_product' => array('title' => $this->l('ID'), 'class' => 'fixed-width-xs', 
           'align' => 'center'), 
     'name' => array('title' => $this->l('Name'), 'filter_key' => 'b!name'), 
    )); 

    $this->clearFilters(); 

    $hostessType = MlmGiftsModule::getGiftTypeIdByGiftTypeName('_HOSTESSGIFT_'); 

    $this->_join = Shop::addSqlAssociation('scd_gift', 'a'); 

    $this->_filter = ' 
     INNER JOIN '._DB_PREFIX_.'product_lang pl 
       ON s.id_product = pl.id_product 
       AND a.`id_gift_type` ='.$hostessType ; 

    $this->toolbar_title = $this->l('Hostess gifts:'); 

    return $this->renderList(); 
} 

ответ

0

_filter использовать, чтобы установить параметры фильтра передаются в список BackOffice полей поиска. Любое JOIN предложение должно быть установлено в _join вар:

$this->_join = Shop::addSqlAssociation('scd_gift', 'a'); 
     . ' INNER JOIN '._DB_PREFIX_.'product_lang pl 
       ON s.id_product = pl.id_product 
       AND a.`id_gift_type` ='.$hostessType ; 

удачи. Ответ

0

PixelWeb является правильным, но, конечно же, не существует точка с запятой после

$this->_join = Shop::addSqlAssociation('scd_gift', 'a') 

Дополнительно. Вы можете пропустить эту строку, так как Prestashop добавляет стандартную SQL-ассоциацию «a» для самой таблицы в контроллере.

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