1.分頁(yè)操作
paginate()方法使用:參數(shù)是每頁(yè)顯示幾條數(shù)據(jù)
后臺(tái)代碼:
前臺(tái)代碼:用后臺(tái)傳過(guò)來(lái)的變量,調(diào)用render()方法
實(shí)際效果:
2.多表關(guān)聯(lián)
with(),belongsTo()多對(duì)一comment表:評(píng)論表
article表:文章表
前臺(tái)評(píng)論表顯示
image.png
comment(評(píng)論表)中,有個(gè)article_id代表此評(píng)論屬于哪篇文章
前臺(tái)顯示需要獲取到article(文章表)的title值
在comment(評(píng)論表)模型里多對(duì)一使用belongsTo()
在comment(評(píng)論表)控制器里:使用with('article')關(guān)聯(lián)文章表
這里就使用到關(guān)聯(lián)的article表里的title字段
這是另一個(gè)一對(duì)多方法使用:hasMany()
3.表聯(lián)合刪除
以上面的為例,如果刪除文章表,那對(duì)應(yīng)的評(píng)論也應(yīng)該被刪除,這時(shí)候就需要文章表關(guān)聯(lián)一下評(píng)論表
在
article(文章表)模型里,定義一個(gè)一對(duì)多的方法
在article(文章表)控制器里關(guān)聯(lián)comment表,且一起刪除together()
4.驗(yàn)證器使用,整體的數(shù)據(jù)傳遞過(guò)程
驗(yàn)證思路:數(shù)據(jù)提交后傳遞的路線:
html -> controller -> model -> validate
html:提交數(shù)據(jù)
controller:整理數(shù)據(jù)
model:處理數(shù)據(jù)
validate:驗(yàn)證數(shù)據(jù)
表單:
提交:ajax方法
把數(shù)據(jù)整理好,傳給adminmodel的register()方法
admin模型先將數(shù)據(jù)給驗(yàn)證器的register場(chǎng)景驗(yàn)證
驗(yàn)證器里先定義規(guī)則,再寫(xiě)驗(yàn)證場(chǎng)景,不同場(chǎng)景,驗(yàn)證不同數(shù)據(jù)
5.驗(yàn)證碼的captcha
表單里,寫(xiě)個(gè)
input:提交驗(yàn)證碼值和img:顯示驗(yàn)證碼
控制器的createVerify()方法里傳入驗(yàn)證碼的配置,返回一個(gè)能在前端顯示的圖
前端js里面寫(xiě)一個(gè)驗(yàn)證碼刷新方法,參數(shù)是為了防止頁(yè)面緩存,導(dǎo)致沒(méi)法刷新新的圖
6.三元運(yùn)算符在模板里的使用
注意:模板里的代碼,得用''括起來(lái)
<td>{$vo.status == 1 ? '正常': '<span style="color: red">禁用</span>'}</td> {if $vo.is_super == 1}<td style="color: red">超級(jí)管理員</td>{else/}<td>普通管理員</td>{/if}
7.關(guān)聯(lián)表
注意:
image.png
7.關(guān)聯(lián)表with()設(shè)置屬性
方式1:閉包:對(duì)關(guān)聯(lián)預(yù)加載的表里的屬性進(jìn)行設(shè)置,
with(['comment'=>function($query){$query->order('create_time','desc');}])方式2:關(guān)聯(lián)2個(gè)1級(jí),1個(gè)2級(jí), 再根據(jù)2級(jí)里的字段,進(jìn)行排序
一級(jí):img,property
二級(jí):imgUrl(img.imgUrl)
image.png
8.事務(wù)
注意:為了數(shù)據(jù)庫(kù)操作的安全嚴(yán)謹(jǐn)性
開(kāi)啟事務(wù)Db::startTrans();
數(shù)據(jù)操作........
提交事務(wù)Db::commit();
數(shù)據(jù)回滾Db::rollback();






















