π框架之实战项目(代码分享)

通过之前的学习,本文主要介绍一下实现用户的登录、注册等功能的接口代码,让大家通过小实战来感悟phalapi框架的神奇之处。(以下代码均可右滑)

获取参数规则

数据库设置

注册

A层

/**
     * 用户注册
     * @desc 若用户名存在,throw -1
     */
    public function userRegister() {

        $Domain_User = new Domain_User();
        //检查username是否存在
        $Domain_User->userCheck($this->username);
        return $Domain_User->userAdd($this);
    }

D层

/**
     * @param $data
     * 用户注册
     * @return int
     * @throws BadRequestException
     */
    public function userAdd($data){
        $Model_User = new Model_User();
        $uid = $Model_User->userAdd($data);
        if (!$uid){
            throw new BadRequestException('error userAdd',-1);
        }
        return (int)$uid['id'];
    }

M层

/**
     * @param $data
     * 用户注册
     * @return $result
     */
    public function userAdd($data){
        return $result = $this->getORM()->insert(array(
            'username'      =>  $data->username,
            'password'      =>  $data->password,
            'phone'         =>  $data->phone,
            'create_date'   =>  time()
        ));

    }

登录

A层

/**
     * 用户登录
     * @desc 返回用户id
     */
    public function userLogin() {
        $Domain_User = new Domain_User();
        $Domain_User->userCheck($this->username);
        return $Domain_User->userLogin($this);
    }

D层

/**
     * @param $data
     * 用户登录
     * @return $id
     * @throws BadRequestException
     */
    public function userLogin($data){
        $Model_User = new Model_User();
        $id = $Model_User->userLogin($data);
        if (!$id){
            throw new BadRequestException('error username or password wrong',-1);
        }
        return $id;
    }

M层

/**
     * @param $data
     * 用户登录
     */
    public function userLogin($data){
        return $this->getORM()->select('id')->where(array('username'=>$data->username))->where(array('password'=>$data->password))->fetch();
    }

获取用户信息

A层

/**
     *获取用户信息
     * @desc 返回用户id信息
     * @return mixed
     */
    public function getInfo() {
        $Domain_User = new Domain_User();
        return $Domain_User->getInfo($this->id);
    }

D层

/**
     * @param $id
     * 根据id获取用户信息
     * @return $user
     * @throws BadRequestException
     */
    public function getInfo($id){
        $Model_User = new Model_User();
        $user = $Model_User->getInfo($id);

        if (!$user){
            throw new BadRequestException('error id wrong',-1);
        }
        return $user;
    }

M层

/**
     * @param $id
     * @根据id获取用户信息
     */
    public function getInfo($id){
        //$id=(int)$id;
        return $this->getORM()->where(array('id'=>$id))->fetch();
    }
    public function getUserList(){
        return $this->getORM()->select('*');
    }

在这里,小编对代码进行了部分注释,希望对大家的学习有所帮助,也希望有问题加我微信(wzc88czw)交流学习心得。

原文发布于微信公众号 - 程序员的碎碎念(gh_53e607dd4782)

原文发表时间:2018-02-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏自由而无用的灵魂的碎碎念

解决MyEclipse 8.6不能更新的问题

大家知道,myeclipse官网屏蔽了大陆的IP,所以一般查看myeclipse官网得FQ。你可以使用在线代理(这是什么?请GOOGLE)查看网址。

673
来自专栏好好学java的技术栈

Hexo+github搭建个人博客环境配置和发布(图文详解)

上一篇博文 《Hexo+github搭建个人博客-环境搭建篇》 中,我们讲解了利用Hexo搭建个人博客应该要配置哪些环境。 相信大家已经迫不及待的想要知道接下来...

822
来自专栏木头编程 - moTzxx

CentOS下如何更改默认的启动方式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

712
来自专栏coding...

Jenkins + Android 自动化打包 发布到蒲公英写在前面准备工作新建任务签名配置一些报错

最先想到的方案当然就是跟iOS一样使用fastlane,查了下相关资料发现fastlane有点重iOS轻Android,于是放弃。找到代替方案,直接使用grad...

501
来自专栏blog

利用Hugo和Github Pages免费创建并永久托管网站

Hugo可以让你轻松生成静态网站,比如个人博客、API文档、公司主页等,你只需要提供markdown格式的文本,它就能帮你渲染成各种你想要的样式,只需要安装想...

631
来自专栏Linyb极客之路

快速部署Tomcat项目的Shell脚本

为了做集群测试,在每台机器上装了3个tomcat,每次发布项目的时候都要反复敲一些命令,重启tomcat之前先检查tomcat进程有没有停掉,没有还要手动kil...

35413
来自专栏React Native开发圈

React Native 使用Realm数据库组件

使用Realm Studio来调试查看编辑数据库里的数据,支持Mac、Windows、Linux。

763
来自专栏漫漫全栈路

IIS中实现HTTPS的自动跳转

还是上次使用的Derwer.com,因为腾讯云提供了一年免费的TrustAsia DV SSL证书,由赛门铁克(Symantec)顶级根证书签发,亚洲诚信(T...

4178
来自专栏最高权限比特流

使用idea断点调试时出现no executable code found at line问题

3714
来自专栏快乐八哥

搭建AngualarJS开发环境

1.选择Web浏览器 Chrome和Firefox浏览器 2.选择代码编辑器 Subline Text和Visual Studio Code 3.安装Web...

1786

扫描关注云+社区