8.4.4 Model類
10余年的民勤網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整民勤建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“民勤網(wǎng)站設(shè)計(jì)”,“民勤網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
getModelName() 獲取當(dāng)前Model的名稱
getTableName() 獲取當(dāng)前Model的數(shù)據(jù)表名稱
switchModel(type,vars=array()) 動(dòng)態(tài)切換模型
table() 設(shè)置當(dāng)前操作的數(shù)據(jù)表
field() 設(shè)置要查詢的數(shù)據(jù)字段
where() 設(shè)置查詢或者操作條件
data(data) 設(shè)置數(shù)據(jù)對象
order(order) 設(shè)置排序
limit(limit) 查詢限制
page(page) 查詢分頁
join(join) 進(jìn)行JOIN查詢
having(having) 進(jìn)行having查詢
group(group) 進(jìn)行g(shù)roup查詢
lock(lock) 查詢鎖定
distinct(distinct) 唯一性查詢
count(field) 記錄統(tǒng)計(jì)
sum(field) 總數(shù)查詢
min(field) 最小值查詢
max(field) 最大值查詢
avg(field) 平均值查詢
_initialize() 模型初始化方法
_facade(data) 對保存到數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行處理
_before_write(data) 寫入數(shù)據(jù)前的回調(diào)方法 包括新增和更新
add(data='',options=array()) 新增數(shù)據(jù)
_before_insert(data,options) 寫入數(shù)據(jù)前的回調(diào)方法
_after_insert(data,options) 寫入數(shù)據(jù)后的回調(diào)方法
selectAdd(fields='',table='',options=array()) 通過Select方式添加記錄
save(data='',options=array()) 更新數(shù)據(jù)到數(shù)據(jù)庫
_before_update(data,options) 更新數(shù)據(jù)前的回調(diào)方法
_after_update(data,options) 更新成功后的回調(diào)方法
delete(options=array()) 刪除數(shù)據(jù)
_after_delete(data,options) 刪除成功后的回調(diào)方法
select(options=array()) 查詢數(shù)據(jù)集
_after_select(resultSet,options) 查詢成功后的回調(diào)方法
findAll(options=array()) select方法的別名
_options_filter(options) 表達(dá)式過濾回調(diào)方法
find(options=array()) 查詢數(shù)據(jù)
_after_find(result,options) 查詢成功的回調(diào)方法
setField(field,value,condition='') 設(shè)置記錄的某個(gè)字段值
setInc(field,condition='',step=1) 字段值增長
setDec(field,condition='',step=1) 字段值減少
getField(field,condition='',sepa=' ') 獲取某個(gè)字段值
create(data='',type='') 創(chuàng)建數(shù)據(jù)對象
autoCheckToken(data) 表單令牌驗(yàn)證
query(sql) 執(zhí)行原生SQL查詢
execute(sql='') 執(zhí)行原生SQL操作
startTrans() 啟動(dòng)事務(wù)
commit() 提交事務(wù)
rollback() 事務(wù)回滾
getError() 獲取模型的錯(cuò)誤信息
getDbError() 獲取數(shù)據(jù)庫的錯(cuò)誤信息
getLastInsID() 獲取最后執(zhí)行的SQL語句
getPk() 獲取主鍵名稱
getDbFields() 獲取數(shù)據(jù)表的字段信息
regex(value,rule) 使用正則驗(yàn)證數(shù)據(jù)
setProperty(name,value) 設(shè)置模型的屬性值
2.1版新增方法:
db(linkNum,config='') 切換當(dāng)前數(shù)據(jù)庫連接
高級模型類AdvModel
topN(count,options=array()) 查詢滿足條件的前N個(gè)記錄
getN(position=0,options=array()) 查詢符合條件的第N條記錄
0 表示第一條記錄 -1 表示最后一條記錄
first(options=array()) 獲取滿足條件的第一條記錄
last(options=array()) 獲取滿足條件的最后一條記錄
returnResult(data,type='') 返回指定的數(shù)據(jù)類型
setLazyInc(field,condition='',step=1,lazyTime=0) 字段值延遲增長
setLazyDec(field,condition='',step=1,lazyTime=0) 字段值延遲減少
addConnect(config,linkNum=NULL) 增加數(shù)據(jù)庫連接
delConnect(linkNum) 刪除數(shù)據(jù)庫連接
closeConnect(linkNum) 關(guān)閉數(shù)據(jù)庫連接
switchConnect(linkNum,name='') 切換數(shù)據(jù)庫連接
patchQuery(sql=array()) 批處理執(zhí)行SQL語句
getPartitionTableName(data=array()) 得到分表的的數(shù)據(jù)表名
Drupal是主流的CMS系統(tǒng)之一。因此具備Drupal技能的開發(fā)人員有很多。
考慮這樣的情況,如果你有一個(gè)現(xiàn)有的非Drupal系統(tǒng),然后有一個(gè)Drupal開發(fā)團(tuán)隊(duì),你希望這個(gè)Drupal團(tuán)隊(duì)幫你擴(kuò)展應(yīng)用。
那么這個(gè)時(shí)候,Drupal應(yīng)用就應(yīng)該設(shè)計(jì)成是支持多數(shù)據(jù)庫的。
在Drupal中使用多數(shù)據(jù),也很簡單。
1、首先在配置文件(Settings.php)中把默認(rèn)的數(shù)據(jù)庫配置項(xiàng)改成數(shù)組形式:
?php
$db_url['default'] = 'mysql://drupal:drupal@localhost/drupal';
$db_url['jigo'] = 'mysql://user:pwd@localhost/jigo';
?
注意這里的數(shù)據(jù)庫格式必須是一樣的。即不能一個(gè)是mysql,另外一個(gè)是pgsql。
而且默認(rèn)的必須是drupal自己的數(shù)據(jù)庫。
2、然后在程序中動(dòng)態(tài)切換:
?php
global $db_url; // 數(shù)據(jù)庫鏈接的內(nèi)部變量
if (!is_array($db_url)) {
$default_db = $db_url;
$db_url = array('default' = $default_db);
}
//也可以動(dòng)態(tài)設(shè)置新的數(shù)據(jù)庫,這里注釋掉,因?yàn)槲覀円呀?jīng)寫在配置項(xiàng)中
//$db_url['jigo'] = 'mysql://user:pwd@localhost/jigo';
db_set_active('jigo'); // activation execution same as explained above
$results = db_query($sql); //sql represents the query to be executed
db_set_active('default'); // set back to original
?
regards,
iefreer
這個(gè)是需要用JS來實(shí)現(xiàn)的,就類似tap選項(xiàng)卡的效果。下面是找的一個(gè)例子,和你想要的效果一樣
!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"
""
html?xmlns=""
head
meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/
titleRadio切換效果/title
style
*{margin:0;padding:0;}
body{margin:50px;font-size:12px;color:#666;}
li{list-style:none;}
div{width:210px;}#tab1,#tab2{width:398px;height:34px;border:1px#cfedff?solid;border-bottom:0;background:url(images/title.gif)repeat-x;}#tab1?ul,#tab2?ul{margin:0;padding:0;}#tab1?li,#tab2?li{float:left;padding:0?30px;height:34px;line-height:34px;text-align:center;border-right:1px#ebf7ff?solid;cursor:pointer;}#tab1?li.now,#tab2?li.now{color:#5299c4;background:#fff;font-weight:bold;}.tablist{width:378px;height:100px;padding:10px;font-size:14px;line-height:24px;border:1px#cfedff?solid;border-top:0;display:none;}.block{display:block;}
fieldset{width:378px;border:1px#B0C0D1?solid;padding:10px;}
legend{background:#B0C0D1;padding:4px?10px;color:#fff;}#c{margin-top:10px;}.c1,.c2{width:378px;line-height:20px;}.c1{color:#014CC9;}.c2{color:#7E6095;}
h3{font-size:16px;padding:5px?0;}.red{color:#BD0A01;}
/style
/head
body
h1Radio切換/h1
script?type="text/javascript"
function?radioShow()?{
var?myradio?=?document.getElementsByName("myradio");
var?div?=?document.getElementById("c").getElementsByTagName("div");
for?(i?=?0;?i??div.length;?i++)?{
if?(myradio[i].checked)?{
div[i].style.display?=?"block";
}?else?{
div[i].style.display?=?"none";
}
}
}
/script
form?name="ck"
fieldset
legendI'm?Radio/legend
h3請選擇:/h3
label?for="r1"?class="red"
input?name="myradio"?id="r1"?type="radio"?value=""?checked="checked"?onclick="radioShow();"?/XML教程/label
label?for="r2"?class="red"
input?name="myradio"?id="r2"?type="radio"?value=""?onclick="radioShow();"?/瀏覽器腳本/label
div?id="c"
div?class="c1"
label?for="xml"
input?name="c2"?type="checkbox"?id="xml"?value=""?/XML/label
label?for="dtd"
input?name="c2"?id="dtd"?type="checkbox"?value=""?/DTD/label
label?for="xmldom"
input?name="c2"?id="xmldom"?type="checkbox"?value=""?/XML?DOM/label
label?for="xsl"
input?name="c2"?id="xsl"?type="checkbox"?value=""?/XSL/label
label?for="xslt"
input?name="c2"?id="xslt"?type="checkbox"?value=""?/XSLT/label
label?for="xslfo"
input?name="c2"?id="xslfo"?type="checkbox"?value=""?/XSL-FO/label
label?for="xpath"
input?name="c2"?id="xpath"?type="checkbox"?value=""?/XPath/label
label?for="xquery"
input?name="c2"?id="xquery"?type="checkbox"?value=""?/XQuery/label
label?for="xlink"
input?name="c2"?id="xlink"?type="checkbox"?value=""?/XLink?/label
label?for="xpointer"
input?name="c2"?id="xpointer"?type="checkbox"?value=""?/XPointer/label
label?for="schema"
input?name="c2"?id="schema"?type="checkbox"?value=""?/Schema/label
label?for="xforms"
input?name="c2"?id="xforms"?type="checkbox"?value=""?/XForms/label
/div
div?class="c2"?style="display:none;"
label?for="js"
input?name="c3"?id="js"?type="checkbox"?value=""?/JavaScript/label
label?for="hd"
input?name="c3"?id="hd"?type="checkbox"?value=""?/HTML?DOM/label
label?for="dhtml"
input?name="c3"?id="dhtml"?type="checkbox"?value=""?/DHTML/label
label?for="vbs"
input?name="c3"?id="vbs"?type="checkbox"?value=""?/VBScript/label
label?for="ajax"
input?name="c3"?id="ajax"?type="checkbox"?value=""?/AJAX/label
label?for="e4x"
input?name="c3"?id="e4x"?type="checkbox"?value=""?/E4X/label
label?for="wml"
input?name="c3"?id="wml"?type="checkbox"?value=""?/WMLScript/label
/div
/div
/fieldset
/form
/body
/html