JModelList类派生自JModel类,这个类比较擅长处理一些列的数据,也就是经常说的结果集。在这个类中实现了操作多数据的一些方法。比喻说分页,排序等等。
使用这个类非常的简单,只需要让我们自己的类继承自JModelList类,然后实现一个getListQuery()方法。一段实例代码如下:
<?php
defined('_JEXEC') or die('Restricted Access');
//jimport('joomla.application.component.model');
jimport('joomla.application.component.modellist');
class DownLoadModelItems extends JModelList
{
protected function getListQuery()
{
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select("*");
$query->from( $db->nameQuote('#__download'));
$query->order($this->getState('list.ordering' ,'id')." ".$this->getState('list.direction' , 'DESC'));
return $query;
}
}
getListQuery就是指明你要操作的表,剩下的事情就交给JModelList类就行了。
那么你可以在你的视图中写下面的代码了
function display($tpl = null)
{
$items = $this->get('Items');
$pagination = $this->get('Pagination');
$state = $this->get('State');
if(count($error = $this->get('Errors')))
{
JError::raiseError(500, implode('<br />',$errors));
return false;
}
$this->items = $items;
$this->pagination = $pagination;
$this->state = $state;
$this->addToolBar();
parent::display($tpl);
}
getItems()方法返回结果集。getPagination()方法返回一个分页对象。getState()方法还不是很清楚。这些方法都是JModelList帮实现。几乎上面的代码就是一段标准视图类的代码。
评论 (0)