模块

Model_Log
继承自 Model

日志模型。

日志类型 type: 1 = 创建;2 = 删除;3 = 修改;4 = 查询

package
BootCMS
category
模型
author
Tinsh
copyright
© 2005-2016 Kilofox Studio

该类在 APPPATH/classes/model/log.php 第 16 行声明。

属性

protected $_db

private $_loaded

private $_values

方法

public clearLogs( [ 时间戳 $days = integer 90 , 保留的天数 $num = integer 100 ] ) (在 Model_Log 中定义)

清理日志。

参数

  • 时间戳 $days = integer 90
  • 保留的天数 $num = integer 100

返回值

  • mixed - 执行结果

源代码

public function clearLogs($days = 90, $num = 100)
{
	if (is_numeric($days) && is_numeric($num))
	{
		$timestamp = time();
		$seconds = $timestamp - $days * 86400;
		// 删除状态为“已删除”且已过期的记录
		$where = "`status` = 1 AND `trashed` < $seconds";
		$this->_db->delete('logs', $where);
		// 标记新的“已删除”记录
		$where = "`status` = 0 AND `created` < $seconds ORDER BY `id` DESC";
		$sql = "SELECT `id` FROM `" . $this->_db->tablePrefix . "logs` WHERE $where";
		$rs = $this->_db->selectArray($sql);
		if (isset($rs[$num - 1]))
		{
			$log = $rs[$num - 1];
			$set = array(
				'status' => 1,
				'trashed' => $timestamp
			);
			$where = "`status` = 0 AND `created` < $seconds AND `id` < {$log->id}";
			return $this->_db->update('logs', $set, $where);
		}
		return false;
	}
	return false;
}

public create( array $data ) (在 Model_Log 中定义)

创建新日志。

参数

  • array $data required - 键值对

返回值

  • mixed - 插入的数据ID 或 false

源代码

public function create($data)
{
	if (is_object($data))
	{
		return $this->_db->insert('logs', $data);
	}
	return false;
}

public static factory( ) (在 Model_Log 中定义)

创建并返回一个新的模型对象。

返回值

  • 对象

源代码

public static function factory($name)
{
	return parent::factory($name);
}

public findByPage( [ string $where = string(0) "" , string $orderBy = string(0) "" , integer $start = integer 0 , integer $limit = integer 10 ] ) (在 Model_Log 中定义)

按分页取得日志。

参数

  • string $where = string(0) "" - 查询条件
  • string $orderBy = string(0) "" - 排序方式
  • integer $start = integer 0 - 开始
  • integer $limit = integer 10 - 数量

返回值

  • array - 数据

源代码

public function findByPage($where = '', $orderBy = '', $start = 0, $limit = 10)
{
	$orderBy = $orderBy ? $orderBy : 'l.`id`';
	$sql = "SELECT l.*, u.username FROM `" . $this->_db->tablePrefix . "logs` l LEFT JOIN `" . $this->_db->tablePrefix . "users` u ON l.user_id=u.id WHERE l.`status` = 0 $where ORDER BY $orderBy LIMIT $start, $limit";
	$result = $this->_db->selectArray($sql);
	$sql = "SELECT COUNT(*) AS num FROM `" . $this->_db->tablePrefix . "logs` l LEFT JOIN `" . $this->_db->tablePrefix . "users` u ON l.user_id=u.id WHERE l.`status` = 0 $where";
	$total = $this->_db->select($sql)->num;
	return array($result, $total);
}

public load( ) (在 Model_Log 中定义)

根据主键加载数据,并返回对象。

返回值

  • 对象

源代码

public function load($id = 0)
{
	if (is_numeric($id) && $id > 0)
	{
		$sql = "SELECT * FROM `" . $this->_db->tablePrefix . "logs` WHERE `id` = $id";
		$this->_values = $this->_db->select($sql);
		$this->_loaded = true;
	}
	return $this->_values;
}

public update( ) (在 Model_Log 中定义)

更新日志。

返回值

  • mixed - 影响的行数或布尔值

源代码

public function update()
{
	if ($this->_loaded)
	{
		$where = "`id` = {$this->_values->id}";
		return $this->_db->update('logs', $this->_values, $where);
	}
	return false;
}

public __construct( ) (在 Model 中定义)

源代码

public function __construct()
{
	if (!is_object($this->_db))
	{
		$this->_db = Database::instance();
	}
}