版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、本文由麥可網(wǎng)整理,轉(zhuǎn)載請注明出處CakePHP應(yīng)用開發(fā):第五章模型——存取數(shù)據(jù)(9.有關(guān)save()方法的更多內(nèi)容)我們已經(jīng)了解了Save()方法可以用來保存和更新數(shù)據(jù)庫記錄。save()方法接受三個參數(shù):$data$validate和$fieldList。save(array$data=nullboolean$validate=truearray$fieldList=array())第一個參數(shù)$data是指要保存的數(shù)據(jù),$data是一
2、個有著特定格式的關(guān)聯(lián)數(shù)組,具體說來有如下結(jié)構(gòu):Array([模型名]=Array([字段名1]=值1[字段名2]=值2)當(dāng)然,數(shù)組中沒有模型名這個鍵也可以。Array([字段名1]=值1[字段名2]=值2)在這種情況下,數(shù)據(jù)會保存在調(diào)用save()方法的模型所對應(yīng)的數(shù)據(jù)庫表中。我們已經(jīng)知道,Save()方法可以用來執(zhí)行保存或者更新操作。他們唯一區(qū)別就是在更新操作時,$data數(shù)組中定義有“id”鍵。而進行保存操作時,數(shù)組中不應(yīng)該包含id
3、“。總之,如果我們正確的使用了表單助手來創(chuàng)建網(wǎng)頁表格,那么我們就不用考慮他們的結(jié)構(gòu)。表單數(shù)據(jù)已經(jīng)格式化好了,可以不用做任何多余的修改就可以保。但是在某些情況下,最好還是要了解一下$data的特殊結(jié)構(gòu)。(比如,要保存的數(shù)據(jù)并不是由網(wǎng)頁表單發(fā)送而來。)我們可能需要手動存儲他們。如果我們不想在向數(shù)據(jù)庫中保存數(shù)據(jù)的時候使用CakePHP的驗證機制,第二個參數(shù)$validate可以設(shè)置成false(數(shù)據(jù)的驗證我們會在這個章節(jié)后半部分討論)。$va
4、lidate默認值是true,這會對接受的數(shù)據(jù)強行進行驗證。第三個參數(shù)$fieldList是一個包含有多個字段名的數(shù)組。如果設(shè)置有$fieldList參數(shù),那么Save函數(shù)只會將數(shù)據(jù)保存進$fieldList指定的字段中去。這意味著,那些不在$fieldList數(shù)組中出現(xiàn)的字段在保存時會被忽略掉。當(dāng)你想要你的數(shù)據(jù)庫免于用戶的意外侵擾時,這招尤其有用如果由于某些原因,數(shù)據(jù)未能成功的保存,或者未能通過驗證規(guī)則時,Save()方法返回fals
5、e。當(dāng)保存完成之后,模型$id屬性會被設(shè)置成最新創(chuàng)建的記錄所對應(yīng)的id。因此,如果數(shù)據(jù)保存成功,我們可以獲得最后插入的記錄的id,方法如下:$thisBooksave($data)$last__id=$thisBookid更新單個字段:有時,我們可能需要更新記錄中的某個字段。CakePHP提供了一個名為saveField()模型函數(shù)來完成此類任務(wù)。下面這個代碼片段展示了如何使用saveField()方法來更新某個字字段的值:$thisB
6、ookid=9$thisBooksaveField(titleNewTitle)本文由麥可網(wǎng)整理,轉(zhuǎn)載請注明出處上面這段代碼將id為9的記錄的“標(biāo)題”字段值更改成了NewTitle。在我們調(diào)用saveField()之前,我們需要設(shè)置模型的屬性$id,以指定要更新哪條記錄。saveField()方法接受三個參數(shù)saveField(string$fieldNamestring$fieldValue$validate=false)第一個參數(shù)$
7、fieldName是指要修改的字段名。第二個參數(shù)$fieldValue指定了字段的新值。第三個參數(shù)$validate用來開啟或者關(guān)閉驗證規(guī)則。當(dāng)使用saveField()函數(shù)時,驗證規(guī)則默認是關(guān)閉的、批量更新在某些情況下,我們可能想一次更新多條記錄。CakePHP提供一個叫作updateAll()的模型方法,針對的就是這種情況。假設(shè),我們在books表中有一個名為starred的字段。現(xiàn)在我們想把所有由DavidBarnes寫的書的st
8、arred字段值設(shè)置為1。我們可以像下面這樣使用updateAll()方法。$thisBookupdateAll(array(Book.auth_name=“DavidBarnes“)array(Book.starred=1))這個方法的形式如下:updateAll(array$conditionsarray$fields)第一個參數(shù)是條件數(shù)組,用來確定我們要批量更新的記錄所需要符合的條件。$conditions數(shù)組的格式與find()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 9.第五章 控制系統(tǒng).doc
- 第五章 貪心方法
- 數(shù)據(jù)結(jié)構(gòu)第五章
- 數(shù)學(xué)模型 第五章
- 第五章--體育評分方法
- 第五章 績效評估的方法
- 第五章 管理的基本方法
- 第五章
- 第五章 應(yīng)用實例分析
- 第五章課件 第五章 營運資金管理
- 第五章 彈性及其應(yīng)用
- 第五章透鏡及其應(yīng)用
- 第五章 員工培訓(xùn)與開發(fā)
- 第五章決策與決策方法
- 第五章 透鏡與其應(yīng)用
- 05第五章員工培訓(xùn)與開發(fā)
- 第五章 定積分與應(yīng)用
- 9第五章 乳粉生產(chǎn)技術(shù)
- fluent udf第五章 使用宏存取fluent解算器變量
- 第五章_焊接檢驗及資格認可的有關(guān)資料
評論
0/150
提交評論