2014-09-19 2 views
2

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

Это мой код. Спасибо за помощь заранее

public function __construct($config = array()) { 
       $config['filter_fields']=array(
       'b.start', 
       'd.`title` ', 
       'e.`title`'); 
       parent::__construct($config); 
     } 

    function getListQuery() 
    { 
    $db = JFactory::getDBO(); 
     $query = $db->getQuery(true); 
    $query->select('a.firstname, a.lastname, b.start, c.flightnumber, d.`title` TO_NAME, e.`title` FROM_NAME, c.id'); 
    $query->from(' #__bookpro_passenger as a'); 
    $query->JOIN('INNER', '#__bookpro_orderinfo as b ON a.order_id = b.order_id'); 
    $query-> JOIN('INNER','#__bookpro_flight as c ON b.obj_id = c.id'); 
    $query-> JOIN('INNER','#__bookpro_dest as d ON c.desfrom = d.id'); 
    $query-> JOIN('INNER',' #__bookpro_dest as e ON c.desto = e.id'); 



     $destfrom = $this->getState('filter.from'); 
       if (!empty($destfrom)) { 
       $destfrom = $db->Quote('%'.$db->escape($destfrom, true).'%'); 
       $query->where('(e.`title` LIKE '.$destfrom.')'); 
    } 


     $destfrom = $this->getState('filter.to'); 
       if (!empty($destfrom)) { 
       $destto = $db->Quote('%'.$db->escape($destto, true).'%'); 
       $query->where('(d.`title` LIKE '.$destto.')'); 
    } 
    return $query; 
    } 

    function populateState() 
     { 

       $app = JFactory::getApplication(); 


       $destfrom = $app->getUserStateFromRequest($this->context.'.filter.from', 'filter_from'); 

       $this->setState('filter.from', $destfrom); 
       $destto = $app->getUserStateFromRequest($this->context.'.filter.to', 'filter_to'); 

       $this->setState('filter.to', $destto); 


       parent::populateState(); 
    } 
} 
+0

Без таблицы и формы деталей, трудно сказать, что это вопрос. Кроме того, второе условие 'if' также выглядит неверным. Оно должно быть' $ destto = $ this-> getState ('filter.to'); if (! Empty ($ destto)) {' – Irfan

ответ

0

Вы должны также переопределить populateState() в модели для filter.to и filter.from:

protected function populateState($ordering = null, $direction = null) { 
    $app = JFactory::getApplication('administrator'); 
    $filter.to = $app->input->get('filter.to'); 
    $this->setState('filter.to', $rfilter.to); 
    // ... 
    // your default sorting 
    parent::populateState('a.firstname', 'asc'); 
} 

В любом случае, проверьте, если $this->getState('filter.from') это набор правильно.

-1

спасибо он работал после отменяя populateState()

+0

Это не ответ, вы можете добавьте комментарий в ответ пользователя. – emmanuel