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