ThinkPHP6项目基操(7.模型)
模型
- 一、模型的定義及基本使用
- 二、模型查詢及其他使用
- 1. new 模型對象
- 2. 模型獲取器
一、模型的定義及基本使用
與Db操作數(shù)據(jù)庫相比,使用模型Model類更方便。
在controller文件夾同級目錄新建文件夾model,再新建Model類,文件名與數(shù)據(jù)庫的數(shù)據(jù)表名對應(yīng),如數(shù)據(jù)表為demo,那么模型類取名為Demo.php:
在控制器中使用模型類:
public function model1(){$result = Demo::find(2);dump($result); }瀏覽器輸出:
這是輸出的模型對象,如果要直接輸出data數(shù)據(jù),可以使用toArray方法:
瀏覽器輸出:
二、模型查詢及其他使用
1. new 模型對象
除了上面的直接使用靜態(tài)方法,也可以先new一個對象再來操作,返回的也是模型對象或模型對象集合,也可以使用toArray方法來轉(zhuǎn)換為數(shù)組:
public function model2(){$model = new Demo();$result = $model->where('id','>',2)->select();dump($result); }2. 模型獲取器
模型獲取器可以修改字段的值,也可以定義數(shù)據(jù)表不存在的字段,方法名稱定義規(guī)則為get[字段大駝峰名]Attr,如getStatusTextAttr,數(shù)據(jù)庫中有status字段,model類修改為:
<?phpnamespace app\model; use think\Model;class Demo extends Model {public function getStatusTextAttr($value, $data){$status = [0 => '待審核',1 => '正常',99 => '刪除'];return $status[$data['status']];} }控制器調(diào)用,大駝峰命名改為下劃線小寫方式:
public function model2(){$model = new Demo();$result = $model->find(2);dump($result->status_text); // "待審核"dump($result->toArray()); }但是直接轉(zhuǎn)換為數(shù)組,還是不會有status_text字段:
如果要獲取包含獲取器處理的數(shù)據(jù)表中不存在的數(shù)據(jù)屬性,可以使用append方法添加,數(shù)據(jù)表已存在的字段可以不用處理,會自動返回:
append的屬性可以是大駝峰命名,也可以是下劃線小寫方式:
dump($result->append(['status_text'])->toArray());結(jié)果:
??重磅推薦:免費商用電商系統(tǒng)
😏想白嫖整個電商系統(tǒng)用來商用?
🤑想有自己的商城實現(xiàn)財富自由?
🤓想學(xué)習(xí)最佳實踐提升自己技術(shù)?
快來進入🚀 傳送門 🚀,開源免費、完整示例帶你快速入門,輕松二開,走上人生巔峰!👨?🎓
總結(jié)
以上是生活随笔為你收集整理的ThinkPHP6项目基操(7.模型)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS7 安装 Nginx PH
- 下一篇: 动态规划算法php,php算法学习之动态