模型层 半仿 Varien_Object 模型基类
半仿 Varien_Object 模型基类 标记:初学作品,敬请忽略。受 NP新页 指点半模仿 Varien_Object 写的PHP模型基类。介绍很长,见http://stu.szu.edu.cn/blog-dev/open-source/database-model-base.html**使用范例(子
标记:初学作品,敬请忽略。受 NP新页 指点半模仿 Varien_Object 写的PHP模型基类。介绍很长,见http://stu.szu.edu.cn /blog-dev/open-source/database-model-base.html
使用范例(子类)
<?php
namespace Model\DataEntity;
use StuCampus\DataModel\DbRecord;
/**
* 新闻分类
*
* @author tonyseek
*
* @property int $id
* @property string $name
* @property string $linkAddress
* @property int $layer
* @property int $parentId
* @property Model\DataEntity\NewsCategory $Parent
*/
class NewsCategory extends DbRecord
{
# 配置信息
/**
* 字段信息
*
* @var array
*/
protected static $_dbColumns = array(
'id' => array('field'=>'CategoryID', 'type'=>self::TYPE_INTEGER, 'length'=>4,
'auto'=>true, 'unique'=>'true'),
'name' => array('field'=>'CategoryName', 'type'=>self::TYPE_STRING, 'length'=>60),
'parentId' => array('field'=>'ParentID', 'type'=>self::TYPE_INTEGER, 'length'=>4),
'linkAddress' => array('field'=>'LinkAddress', 'type'=>self::TYPE_STRING, 'length'=>600),
'layer' => array('field'=>'Layer', 'type'=>self::TYPE_INTEGER, 'length'=>2),
);
/**
* 所属数据表
*
* @var string
*/
protected static $_dbTable = 'NewsCategory';
/**
* 所属数据库
*
* @var string
*/
protected static $_database = 'default';
# 受保护成员和私有成员
/**
* 父级分类
*
* @var \Model\DbObject\NewsCategory
*/
protected $_parent = null;
# 成员方法
/**
* 获取父级的 NewsCategory 对象 (映射到动态属性Parent)
*
* @return Model\DataEntity\NewsCategory
*/
protected function getParent()
{
if (null === $this->_parent) {
$this->_parent = new self;
$this->_parent->load($this->parentId);
}
return $this->_parent;
}
}
调用范例
<?php
$newsCategory = new NewsCategory;
$newsCategory->load(1);
echo $newsCategory->name;
$saveExample = new NewsArticle;
$saveExample->name = 'xxx';
try {
$saveExample->save();
} catch (PDOException $ex) {
// 视图提示数据库错误
} catch (Exception $ex) {
// 视图提示未知错误
}
其他范例
$dbh = DbHandler::factory('default');
DbConnector::factory('default')->transationExecute(function() use ($dbh) {
$dbh->sqlString = 'insert xxx';
$dbh->setParam(':xx', $vars, PDO::PARAM_BOOL);
$dbh->execute();
$dbh->cleanParams(); // 这句其实可以不写,除非调用的是$dbh->execute(true);否则参数会自动清空
$dbh->sqlString = 'select ***';
$result = $dbh->getDataArray();
var_dump($result);
// 该回调函数中执行的操作在事务中,异常时会自动回滚,无异常会自动提交
});
- 上一篇:PHP xpath查找xml节点和节点属性的值
- 下一篇:PHP cookie加密~
精彩图集
精彩文章






