博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(9)学习tp5之模型
阅读量:3780 次
发布时间:2019-05-22

本文共 2156 字,大约阅读时间需要 7 分钟。

系统学习tp5框架,请点击下面的连接

模型命名:使用去掉前缀的表名(大驼峰).php

注意:使用模型中记得修改配置文件

// 数据集返回类型'resultset_type'  => 'collection', //手册-》数据库-》数据集

1、路由

2、控制器中的代码(当前是UserController控制器)

//往模型中【插入】数据    public function add(){        //二维插入多条,一维插入1条        $data = [            ['name' => 'tp', 'password' => '123', 'fee' => 99],            ['name' => 'tp1', 'password' => '123', 'fee' => 99]        ];        $obj = new User();        $obj->userAdd($data);   //调模型中的方法    }    //在模型中【查询】数据    public function select(){        $res = User::userSelect();  //调静态        $obj = new User();        $ratioRes = $obj->selectRatioResult();        dump($res);    }    //关联模型    public function relevanceModel(){        //总结:1、查询和更新是以属性的形式调,不要加();2、get()里面传啥值,看sql追踪的,一般是外键        //dump(User::get(2)->userInfo->toArray());    //关联【查询】        //关联【新增】是给user_info(b)表新增。        //User::get(9)->userInfo()->save(['email'=>'69391332@qq.com','mobile'=>'2222']);        //关联【更新】更新第1条。先查出一条外键=3的。更新时拿外键对应的本表id做条件        User::get(1)->userInfo->save(['email'=>'222@qq.com','mobile'=>'222','user_id'=>'1']);   //只适用于1对1    }

3、模型中的代码(当前是User模型)

public function userAdd($data){    //插入单条,方式1,使用父类    $this->data($data);    $this->save();    //插入单条,方式2,使用orm的Db    Db::name('user')->insert($data);    //插入多条    $this->saveAll($data);}//使用模型1,需要将数据库配置文件中的'resultset_type'  => 'collection',改成数据集这样方便操作public static function userSelect(){    //使用模型的 静态方法。本类调父类中的静态方法    //$res = self::get('1');     //查单条    $res = self::all([1,3,4]);   //查多条    return $res->reverse()->toArray();  //reverse()倒序是手册-》数据库-》数据集中的方法}//使用模型2public function selectRatioResult(){    //使用orm的Db    $dbRes = Db::name('user')->where(['id'=>2])->find();    dump($dbRes);   //Db返回的是数组    //使用模型的    $modelRes = $this->where(['id'=>1])->find();    //模型返回的是对象    return $modelRes->toArray();    //只有数据集对象,才可以转成数组(前提是要改数据库配置文件)}//【关联模型】方法名的定义规则,一般是模型名public function userInfo(){    /*     * user 是a表。     * user_info是b表,通过user_id字段和a表的id做外键关联。     * 第1个参数是b表模型名,第2个参数是b表的外键,第3个参数是a表的主键     * */    //return $this->hasOne('UserInfo','user_id','id');    //【一对一】    return $this->hasMany('UserInfo','user_id','id')->field('email');    //【一对多】}

你可能感兴趣的文章
Angular框架
查看>>
行为型模式:模板方法
查看>>
spring cloud之Feign的使用
查看>>
Codeforces Round #617 (Div. 3) String Coloring(E1.E2)
查看>>
LeetCode刷题 --杂篇 --数组,链表,栈,队列
查看>>
840. 模拟哈希表(模板)
查看>>
《算法》笔记 17 - 数据压缩
查看>>
Qt Installer Framework翻译(5-2)
查看>>
Java+Selenium+Testng自动化测试学习(三)— 断言
查看>>
PAT乙级1012
查看>>
银行业务队列简单模拟(队列queue)
查看>>
MySql中的数据查询语言(DQL)三:连接查询
查看>>
MySql中的数据查询语言(DQL)五:union和limit
查看>>
数据操作语言(DML)一:插入数据insert、修改数据update、删除delete
查看>>
.properties 文件,.yml 文件 ,yaml文件语法学习
查看>>
jsp 的常用标签
查看>>
Listener 监听器
查看>>
SpringBoot自动配置原理
查看>>
IDEA连接mysql又报错设置时区!Server returns invalid timezone.
查看>>
员工管理系统二:首页和国际化实现
查看>>