模块

Model_Shop
继承自 Model

店铺模型。

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

该类在 APPPATH/classes/model/shop.php 第 10 行声明。

属性

protected $_db

private $_loaded

private $_values

方法

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

创建新店铺。

参数

  • array $data required - 键值对

返回值

  • mixed - 插入的数据ID 或 false

源代码

public function create($data)
{
	if ( is_object($data) )
	{
		// 对象转数组(将来将 Validation 改写成操作对象后,就可以省略此步)
		$values = array();
		foreach( $this->_values as $key=>$val )
		{
			$values[$key] = $val;
		}
		// 验证数据
		$validation = self::getValidation($values);
		if ( !$validation->check() )
		{
			throw new Validation_Exception('user', $validation);
		}
		return $this->_db->insert('shops', $values);
	}
	return false;
}

public delete( ) (在 Model_Shop 中定义)

删除店铺。

返回值

  • mixed - 执行结果

源代码

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

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

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

返回值

  • 对象

源代码

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

public findAllWithMedia( ) (在 Model_Shop 中定义)

带媒体的店铺。

返回值

  • array - 数据

源代码

public function findAllWithMedia()
{
	$sql = "SELECT s.*, m.file_name, m.thumb_name FROM `".$this->_db->tablePrefix."shops` s LEFT JOIN `".$this->_db->tablePrefix."media` m ON s.media = m.id ORDER BY `list_order`";
	return $this->_db->selectArray($sql);
}

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

按分页取得店铺。

参数

  • 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 : '`id`';
	$sql = "SELECT * FROM `".$this->_db->tablePrefix."shops` WHERE 1 $where ORDER BY $orderBy LIMIT $start, $limit";
	$result = $this->_db->selectArray($sql);
	$sql = "SELECT COUNT(*) AS num FROM `".$this->_db->tablePrefix."shops` WHERE 1 $where";
	$total = $this->_db->select($sql)->num;
	return array($result, $total);
}

public static getValidation( array $values ) (在 Model_Shop 中定义)

数据验证。

参数

  • array $values required - $values

返回值

  • Validation

源代码

public static function getValidation($values)
{
	return Validation::factory($values)
		->rule('shop_name', 'not_empty')
		->rule('content', 'not_empty');
}

public load( ) (在 Model_Shop 中定义)

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

返回值

  • 对象

源代码

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

public loadByName( ) (在 Model_Shop 中定义)

根据名称加载数据,并返回对象。

返回值

  • 对象

源代码

public function loadByName($name)
{
	if ( $name )
	{
		$sql = "SELECT * FROM `".$this->_db->tablePrefix."shops` WHERE `product_name` = '$name'";
		$this->_values = $this->_db->select($sql);
		$this->_loaded = true;
	}
	return $this->_values;
}

public update( ) (在 Model_Shop 中定义)

更新店铺。

返回值

  • 执行结果

源代码

public function update()
{
	if ( $this->_loaded )
	{
		// 对象转数组(将来将 Validation 改写成操作对象后,就可以省略此步)
		$_arr = get_object_vars($this->_values);
		foreach( $_arr as $key=>$val )
		{
			$values[$key] = $val;
		}
		// 验证数据
		$validation = self::getValidation($values);
		if ( !$validation->check() )
		{
			throw new Validation_Exception('user', $validation);
		}
		$where = "`id` = '{$this->_values->id}'";
		unset($this->_values->id);
		return $this->_db->update('shops', $this->_values, $where);
	}
	return false;
}

public __construct( ) (在 Model 中定义)

源代码

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