Помогите, пожалуйста, моя модель может получать данные из базы данных, но не может фильтровать, если я хочу определенный набор результатов, который он продолжает давать мне те же данные
Это мой код Спасибо за помощь в продвижении
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();
}
}
Вы также должны переопределить 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')
правильно установлен.
Большое спасибо, это сработало после переопределения populateState ()