本文整理匯總了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;