Blogger Information
Blog 46
fans 2
comment 0
visits 19470
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
1、联表查询 2、model创建 3、model查询数据库 4、model 的配置 5、model 获取器、修改器
P粉314265155
Original
707 people have browsed it

联表查询

  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. }
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!