博客列表 >1、联表查询 2、model创建 3、model查询数据库 4、model 的配置 5、model 获取器、修改器

1、联表查询 2、model创建 3、model查询数据库 4、model 的配置 5、model 获取器、修改器

P粉314265155
P粉314265155原创
2022年09月12日 12:06:49706浏览

联表查询

  1. public function three (){
  2. // print_r(Request::post());
  3. // 1、method 请求方法 获取当前请求的类型
  4. // print_r(Request::method());
  5. // PHP做接口 给vue 小程序 app,保证数据安全,必须放弃get传值方式 get传值方式在 浏览器上
  6. // 判断 请求方式
  7. // if(Request::method() != 'POST'){
  8. // echo '请用post请求';
  9. // exit;
  10. // }
  11. // echo 'post提交后返回数据';
  12. // exit;
  13. // 2、 isGet isPost
  14. // if(Request::isPost()){
  15. // echo 'post请求';
  16. // }else{
  17. // echo 'get请求';
  18. // }
  19. // print_r(Request::request());
  20. // 全局环境变量
  21. // print_r(Request::server());
  22. // echo time();
  23. // echo '<hr>';
  24. // echo Request::server()['REQUEST_TIME'];
  25. // 3、联表查询 统计数据 时需要
  26. // join 链式操作 任何操作 都要增加表的名称,因为是联表查询 可以给表起别名
  27. // $user =Db::table('lh_user') ->join('lh_order','lh_user.uid=lh_order.uid')->select();
  28. // print_r($user);
  29. // 起别名 注意中间空一格空格 不能空两格空格
  30. // $user =Db::table('lh_user u') ->join('lh_order o','u.uid = o.uid')->select();
  31. // 另外一种起别名的方式 alias join 可以一直加
  32. // $user =Db::table('lh_user') ->alias('u')->join('lh_order o','u.uid = o.uid')->select();
  33. // print_r($user);
  34. // INNER JOIN: 等同于 JOIN(默认的JOIN类型),如果表中有至少一个匹配,则返回行
  35. // LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  36. // RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  37. // FULL JOIN: 只要其中一个表中存在匹配,就返回行
  38. // $user =Db::table('lh_user') ->alias('u')->leftJoin('lh_order o','u.uid = o.uid')->select();
  39. // print_r($user);
  40. // 使用模型。先引入 app\model\LhUser
  41. // $LhUser = new LhUser();
  42. // $LhUser -> lists();
  43. $User = new User();
  44. $User -> lists();
  45. // $User = new User();
  46. // $User -> one();
  47. $User = new User();
  48. $data = [
  49. 'name' => '小心',
  50. 'password' =>123,
  51. 'email' =>'1232@qq.com',
  52. 'register_time' =>'123456780',
  53. ];
  54. $User -> insert($data);
  55. }

model创建 model查询数据库 model 的配置

  1. <?php
  2. // 模型文件
  3. namespace app\model;
  4. use think\Model;
  5. class User extends Model
  6. {
  7. // 设置当前模型对应的完整数据表名称
  8. // protected $table = 'lh_user';
  9. // 设置当前模型的数据库连接
  10. // protected $connection = 'db_config';
  11. // 设置废弃的字段 查询结果就看不到了
  12. // protected $discuse = [
  13. // 'name',
  14. // 'phone'
  15. // ];
  16. // 5 、 数据类型是 php 的类型
  17. // protected $type = [
  18. // 'uid' => 'int',
  19. // 'name' => 'string',
  20. // ];
  21. // protected $pk = 'uid';
  22. // protected $name = 'user';
  23. public function lists(){
  24. // Db:: 在控制器contraller 用
  25. // 模型里面用 自己的class名称
  26. // 1、select 是tp 自带的方法 在每个model 模型都能直接使用 在任意表中使用
  27. $ret = User::select();
  28. // print_r($ret);
  29. // 2、 默认 主键为 id 如果是uid查询报错,因此需要增加 where条件
  30. // 可以把主键从id 改为 uid 就不用 where protected $pk = 'uid'; https://www.kancloud.cn/manual/thinkphp6_0/1037580
  31. // 因此 是where 和find 都是可用的 返回的是对象
  32. // 所有的链式操作都是可以用的
  33. // $ret = LhUser::where('uid',1)->find();
  34. // $ret = LhUser::find(1);
  35. // print_r($ret);
  36. // 3、结果跟 controller 用 门面 db 是一样的
  37. // print_r($ret['name']);
  38. // 4、学过的 数据处理都是可以转为 toArray 从对象转为 数组
  39. // print_r($ret ->toArray());
  40. // foreach ($ret as $ret_s){
  41. // if( $ret_s['status'] == 1){
  42. // $ret_s['status']= '开启';
  43. // }else{
  44. // $ret_s['status']= '关闭';
  45. // }
  46. // }
  47. print_r($ret ->toArray());
  48. }
  49. // public function One(){
  50. // $ret = User::find(4);
  51. // print_r($ret);
  52. // }

model 获取器、修改器

  1. // 6、获取器 格式 :get +字段 +Attr 创建一个方法名
  2. // 6.1 会接受一个参数
  3. public function getStatusAttr($v){
  4. // 6.2 所有的状态都会传到这个方法里面
  5. // print_r($v);
  6. // if ($v==0){
  7. // $ret ='开启';
  8. // }else{
  9. // $ret ='关闭';
  10. // }
  11. // 这里要return 回去 给查询的那条语句
  12. // return $ret;
  13. // 直接返回 没有把v 使用
  14. // $arr = [
  15. // 0 => '禁用',
  16. // 1 =>'启用',
  17. // 2 =>'待审核',
  18. // ];
  19. // return $arr[$v];
  20. }
  21. public function insert($data){
  22. $ret = User::create($data);
  23. // 注意数据结果 也是要返回,model里面的任何对外的方法 ,都要用return f返回
  24. return $ret;
  25. }
  26. // 7、 修改器 :格式 :get +字段 +Attr 创建一个方法名
  27. // 7.1会接受两个传值 1个是 字段值 2全不值
  28. public function setPasswordAttr($v,$all){
  29. print_r($v);
  30. print_r($all);
  31. return md5($v);
  32. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议