批改状态:合格
老师批语:
public function three (){// print_r(Request::post());// 1、method 请求方法 获取当前请求的类型// print_r(Request::method());// PHP做接口 给vue 小程序 app,保证数据安全,必须放弃get传值方式 get传值方式在 浏览器上// 判断 请求方式// if(Request::method() != 'POST'){// echo '请用post请求';// exit;// }// echo 'post提交后返回数据';// exit;// 2、 isGet isPost// if(Request::isPost()){// echo 'post请求';// }else{// echo 'get请求';// }// print_r(Request::request());// 全局环境变量// print_r(Request::server());// echo time();// echo '<hr>';// echo Request::server()['REQUEST_TIME'];// 3、联表查询 统计数据 时需要// join 链式操作 任何操作 都要增加表的名称,因为是联表查询 可以给表起别名// $user =Db::table('lh_user') ->join('lh_order','lh_user.uid=lh_order.uid')->select();// print_r($user);// 起别名 注意中间空一格空格 不能空两格空格// $user =Db::table('lh_user u') ->join('lh_order o','u.uid = o.uid')->select();// 另外一种起别名的方式 alias join 可以一直加// $user =Db::table('lh_user') ->alias('u')->join('lh_order o','u.uid = o.uid')->select();// print_r($user);// INNER JOIN: 等同于 JOIN(默认的JOIN类型),如果表中有至少一个匹配,则返回行// LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行// RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行// FULL JOIN: 只要其中一个表中存在匹配,就返回行// $user =Db::table('lh_user') ->alias('u')->leftJoin('lh_order o','u.uid = o.uid')->select();// print_r($user);// 使用模型。先引入 app\model\LhUser// $LhUser = new LhUser();// $LhUser -> lists();$User = new User();$User -> lists();// $User = new User();// $User -> one();$User = new User();$data = ['name' => '小心','password' =>123,'email' =>'1232@qq.com','register_time' =>'123456780',];$User -> insert($data);}
<?php// 模型文件namespace app\model;use think\Model;class User extends Model{// 设置当前模型对应的完整数据表名称// protected $table = 'lh_user';// 设置当前模型的数据库连接// protected $connection = 'db_config';// 设置废弃的字段 查询结果就看不到了// protected $discuse = [// 'name',// 'phone'// ];// 5 、 数据类型是 php 的类型// protected $type = [// 'uid' => 'int',// 'name' => 'string',// ];// protected $pk = 'uid';// protected $name = 'user';public function lists(){// Db:: 在控制器contraller 用// 模型里面用 自己的class名称// 1、select 是tp 自带的方法 在每个model 模型都能直接使用 在任意表中使用$ret = User::select();// print_r($ret);// 2、 默认 主键为 id 如果是uid查询报错,因此需要增加 where条件// 可以把主键从id 改为 uid 就不用 where protected $pk = 'uid'; https://www.kancloud.cn/manual/thinkphp6_0/1037580// 因此 是where 和find 都是可用的 返回的是对象// 所有的链式操作都是可以用的// $ret = LhUser::where('uid',1)->find();// $ret = LhUser::find(1);// print_r($ret);// 3、结果跟 controller 用 门面 db 是一样的// print_r($ret['name']);// 4、学过的 数据处理都是可以转为 toArray 从对象转为 数组// print_r($ret ->toArray());// foreach ($ret as $ret_s){// if( $ret_s['status'] == 1){// $ret_s['status']= '开启';// }else{// $ret_s['status']= '关闭';// }// }print_r($ret ->toArray());}// public function One(){// $ret = User::find(4);// print_r($ret);// }
// 6、获取器 格式 :get +字段 +Attr 创建一个方法名// 6.1 会接受一个参数public function getStatusAttr($v){// 6.2 所有的状态都会传到这个方法里面// print_r($v);// if ($v==0){// $ret ='开启';// }else{// $ret ='关闭';// }// 这里要return 回去 给查询的那条语句// return $ret;// 直接返回 没有把v 使用// $arr = [// 0 => '禁用',// 1 =>'启用',// 2 =>'待审核',// ];// return $arr[$v];}public function insert($data){$ret = User::create($data);// 注意数据结果 也是要返回,model里面的任何对外的方法 ,都要用return f返回return $ret;}// 7、 修改器 :格式 :get +字段 +Attr 创建一个方法名// 7.1会接受两个传值 1个是 字段值 2全不值public function setPasswordAttr($v,$all){print_r($v);print_r($all);return md5($v);}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号