Ecsotre 参考
2、dbschema
dbschema 字段屬性
‘type’ => ‘int unsigned’, //字段類型
‘extra’ => ‘a(chǎn)uto_increment’,//定義自增
‘pkey’ => true,//主鍵
‘required’ => true,//該字段為必須
創(chuàng)建唯一性字段?
'index' => array(
'user' => array('columns' => array('email'),'prefix' => 'UNIQUE'),
),//唯一字段設置
相關文檔:http://ec-os.net/advance/base/mvc/m/dbschema.html#id2
dbschema type類型
dbschema相關type類型:
money 'price' decimal(20,3) default 0.00
email 'email' varchar(255)
time 'create_time' int(10) unsigned
cdate 'create_time' int(10) unsigned
password 'passwd' varchar(32)
枚舉類型、bn、html、bool、intbool、region
Tinybool、number、float、gender、ipaddr、
Serialize、last_modify、mysql字段類型
3、model的調(diào)用
1、model概述
如何創(chuàng)建自己的model
model的命名規(guī)則
{$app_id}_mdl_{$mod_path}
model存放位置
app/{$app_id}/model/{mod_path}/
1.獲取model對象
. 獲取本app 的model
$model = $this->app>model('$model');
.獲取其他app 的model
$model = app::get('b2c')->model($model);
.更通用的方法kernel::single()
$model = kernel::single(‘b2c_mdl_$model');
2. 在model中獲取數(shù)據(jù)庫操作對象
.通過調(diào)用基類成員變量$db
$result = $this->db->select($sql); //注意model要繼承base_db_model或則dbeav_model
.通過kernel::database()直接獲取數(shù)據(jù)庫操作對象
$result = kernel::database()->select($sql);
3、model常用方法
ECOS model 常用方法
. exec (query )執(zhí)行sql語句
. select 對數(shù)據(jù)庫表進行select
. selectrow 返回單行數(shù)據(jù)
. selectlimit 與select函數(shù)差不多, 區(qū)別在于, 用selectlimit不必手拼limit
. getRows 通過mysql結(jié)果集連接標識, 獲取單/多行數(shù)據(jù)
. quote 對準備入數(shù)據(jù)庫表字段的數(shù)據(jù)做安全轉(zhuǎn)義處理
. lastinsertid 獲取最后插入數(shù)據(jù)庫的條目的id號
. affect_row 獲取之前mysql語句操作所影響的行數(shù)
ECOS model 常用方法二
. count 通過過濾器,取得對應表的數(shù)據(jù)行數(shù)
. getList 獲取model對應表的單/多行數(shù)據(jù), 可根據(jù)需要重載
. dump 獲取model 對應表單行數(shù)據(jù)
. insert 插入單行數(shù)據(jù), 會根據(jù)dbschema的type做轉(zhuǎn)義處理
. save 保存數(shù)據(jù),如果數(shù)據(jù)存在則做更新處理
. updata 根據(jù)更新數(shù)據(jù)
. delete 根據(jù)條件刪除數(shù)據(jù)
. beginTransaction,commit ,rollBack 事物處理
?
1. 基本的filter用法
$filter = array('sex' => 'male','age' => array (23, 45, 54));
$this->delete($filter);
2.filter 擴展用法(model 需要集成dbeav_model )
$FilterArray= array('than'=>' > '.$var,
'lthan'=>' < '.$var, 注意:在$filter中可以寫自己的sql 條件
'nequal'=>' = \''.$var.'\'',
'noequal'=>' <> \''.$var.'\'', $filter = array(
'tequal'=>' = \''.$var.'\'', 'filter_sql'=>' sex=male and age=23',
'sthan'=>' <= '.$var, );
'bthan'=>' >= '.$var,
'has'=>' like \'%'.$var.'%\'',
'head'=>' like \''.$var.'%\'',
'foot'=>' like \'%'.$var.'\'',
'nohas'=>' not like \'%'.$var.'%\'',
'between'=>' {field}>='.$var[0].' and '.' {field}<'.$var[1],
'in' =>" in ('".implode("','",(array)$var)."') ",
'notin' =>" not in ('".implode("','",(array)$var)."') ",
);
三、desktop
1、控制器主要方法
. ECOS 中autoload機制(class 命名規(guī)則)
1、controller命名規(guī)則
2、model命名規(guī)則
3、lib中的命名規(guī)則
. ECOS中實例化類的方法
1、app::get('$app')->model('$model');app::get('$app')->render();
//主要用來調(diào)用model,base_render類
2、通用方法kernel::single(?$class??);//主要用來調(diào)用lib中的類
. 后臺controller常用方法
1、顯示view頁面:
? page("xxx.html?) ;
? singlepage('xxx.html');
? display('xxx.html');
2、向view頁面分配數(shù)據(jù) :
? pagedata();
3、拼接url地址
? gen_url();
?
? 后臺的控制器必須繼承desktop_controller,繼承后才有finder方法,下面介紹下?
finder方法的幾個參數(shù):
? 第一個參數(shù)是字符串,(例如:ecbook_mdl_item ),是model里的class名,
它決定了finder列表的數(shù)據(jù)源,默認情況下是ecbook_mdl_item類里的getList方
法返回的數(shù)據(jù)
? 第二個參數(shù)是數(shù)組,這個數(shù)組內(nèi)涵相當豐富,解釋如下:
use_buildin_recycle: 是否顯示刪除操作
use_buildin_export: 是否顯示導出操作
use_buildin_import: 是否顯示導入操作
base_filter:對tab數(shù)據(jù)進行過濾篩選,參照上面格式
use_buildin_filter: 是否使用高級篩選
use_buildin_refresh: 是否顯示刷新操作(高級篩選旁)
use_buildin_setcol: 是否顯示列配置
use_buildin_selectrow: 是否顯示每條記錄前的復選按鈕
? finder上的自定義標簽
后臺tab標簽顯示如右:
需要在調(diào)用了finder 的控制器里定義_views方法,_views方法的返回值格式如下:
配置參數(shù):
label: tab的標題文字
optional: 此tab是否可選
filter: 此tab的過濾條件
addon: 此過濾條件下有多少條記錄
href: 此tab的鏈接地址
轉(zhuǎn)載于:https://www.cnblogs.com/vmax/p/3275064.html
總結(jié)
以上是生活随笔為你收集整理的Ecsotre 参考的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 敏捷测试介绍
- 下一篇: HDU 2282 Chocolate