本文整理汇总了PHP中DBModel::model方法的典型用法代码示例。如果您正苦于以下问题:PHP DBModel::model方法的具体用法?PHP DBModel::model怎么用?PHP DBModel::model使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DBModel
的用法示例。
在下文中一共展示了DBModel::model方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: model
/**
* Returns the static model of the specified AR class.
* @return CActiveRecord the static model class
*/
public static function model($className = __CLASS__)
{
return parent::model($className);
}
示例2: getFind
/**
* 根据表名获取记录
* @param $tname string 表名(可以是由item虚化出来的,如“item_nnhysj_tz”)
* @return 记录总数
*/
public function getFind($tname)
{
$ts = $this->parseRealTable($tname);
if ($this->beforeFind()) {
$this->applyScopes($ts['criteria']);
$rows = DBModel::model()->getDb()->selectCollection($ts['name'])->find($ts['criteria']->getConditions());
}
return $rows;
}
示例3: actionSynJStoDB
/**
* 同步json数据到相应数实体表
* 用来使用js更新表数据,操作需谨慎
* 普通索引: index{"RealCost":1},[]
* 唯一索引: index{"ItemShopTags":1},{"unique":true}
* 新数据: {"_id":"item_blink","ItemShopTags":["传送"],"Lines":[],"RealCost":2150,"Category":"奥术"}
* 更新数据: {"_id":"item_blink"},{"$set":{"ItemShopTags":["传送","防具"]}}
*/
public function actionSynJStoDB()
{
$js_id = isset($_GET['id']) ? $_GET['id'] : '';
//待同步文件名路径
$file = File::model()->findByPk(new MongoId($js_id));
if (!$file) {
throw new CHttpException(404, '该数据文件不存在。');
}
$js_name = pathinfo($file->metadata['name']);
//真实文件名
$js_name = $js_name['filename'];
$exers = array('i' => array(0, 0), 'a' => array(0, 0), 'u' => array(0, 0));
if ($file) {
$id_info = explode('-', $js_name);
//剔除文件名中的日期
// foreach($id_info as $namekey=>$namevo){
// if(preg_match('/^\d{14}$/i', $namevo)){
// unset($id_info[$namekey]);
// $cname = implode('-', $id_info);
// }
// }
//确认集合名称
if ($id_info > 1) {
$tables = $this->_listCollections(DBModel::model()->getDb());
foreach ($id_info as $namevo) {
//集合名称:当前库中存在该集合或者以‘item_’开头
if (isset($tables[$namevo])) {
$cname = $namevo;
break;
}
}
}
//获取并执行导入新数据
$body = $file->getBytes();
//获取文件内容
$lines = preg_split('/(\\r\\n|\\n)/i', $body);
//每行作为一个语句
//若仅为集合名称,则清空该集合内容,修改为独立操作
//if(count($id_info)==1){
// CardItem::model()->getDb()->selectCollection($cname)->remove(); //drop会删除集合,remove仅清空记录
//}
//循环进行插入/更新/创建索引
foreach ($lines as $line) {
$line = trim($line);
if (!empty($line)) {
//判定是否为索引,若是则创建,否则作为普通数据直接插入
if (substr($line, 0, 5) == 'index') {
//索引记录以index字符串开头
//$exe_query = 'ensureIndex(o)';
$line = substr($line, 5);
//$exe_query = 'ensureIndex(o)';
$ret = DBModel::model()->getDb()->selectCollection('system.indexes')->insert((array) json_decode($line));
$exers['i'][$ret]++;
//记录执行结果
//判断是否是更新
} else {
if (preg_match('/^\\{"_id":"[0-9a-z_-]+"\\},/i', $line)) {
$line = explode('},{"$set":', $line);
if (isset($line[1])) {
$update_where = (array) json_decode($line[0] . '}');
if (preg_match('/^[a-z0-9]{24}$/', $update_where['_id'])) {
$update_where['_id'] = new MongoId($update_where['_id']);
}
$ret = DBModel::model()->getDb()->selectCollection($cname)->update($update_where, (array) json_decode('{"$set":' . $line[1]));
$exers['u'][$ret]++;
}
//其余为插入
} else {
//$exe_query = 'insert(o)';
$line = (array) json_decode(preg_replace('/\\{.?"\\$oid".?:.?("[0-9a-z]+")[^}]?\\}/i', '\\1', $line));
//转为普通字符串
//重新构造MongoId的_id
if (preg_match('/^[a-z0-9]{24}$/', $line['_id'])) {
$line['_id'] = new MongoId($line['_id']);
}
$ts = DBModel::model()->parseRealTable($cname);
$ret = DBModel::model()->getDb()->selectCollection($ts['name'])->insert($line);
$exers['a'][$ret]++;
}
}
}
}
}
$this->redirect_back(array('exers' => $exers['i'][0] . '#' . $exers['i'][1] . '#' . $exers['a'][0] . '#' . $exers['a'][1] . '#' . $exers['u'][0] . '#' . $exers['u'][1]));
//返回上一页
/* 参考代码
db.getCollection("game").ensureIndex({
"code": NumberInt(1)
},[]);
db.getCollection("game").insert({
"_id": ObjectId("516140719b2a952c14000000"),
"name": "Dota2",
//.........这里部分代码省略.........
示例4: foreach
width: 100%;
}
-->
</style>
<form method="post" action="/dump/export">
<ul class="list">
<?php
if (empty($tables)) {
?>
数据库为空
<?php
} else {
?>
<?php
foreach ($tables as $en_name => $name) {
$rows = DBModel::model()->getCount($en_name);
?>
<li>
<label>
<input type="checkbox" class="all_input" name="checked[]" value="<?php
echo $en_name;
?>
" <?php
if (in_array($name, $selectedTables)) {
?>
checked="checked"<?php
}
?>
/>
<b><?php
echo $name;