控制器代码

//登录功能
public function login(){
$data = input();
$validate = $this->validate($data,[
'uname|登录账号'=>'require',//可以是账号username、手机phone、邮箱email
'upwd|登录密码'=>'require'
]);
if($validate!==true){
return json(['code'=>1,'msg'=>$validate,'data'=>null]);
} $res = User::loginSel($data); if(empty($res)){
return json(['code'=>1,'msg'=>'账号密码有误','data'=>null]);
}
session('uid',$res['id']);
session('unick',$res['nickname']);
return json(['code'=>0,'msg'=>'登录成功','result'=>$res]);
}

模型代码:

  public static function loginSel($arr){
$username['username'] = $arr['uname'];
$username['password'] = md5($arr['upwd']); $phone['phone'] = $arr['uname'];
$phone['password'] = md5($arr['upwd']); $email['email'] = $arr['uname'];
$email['password'] = md5($arr['upwd']); $usernameRes = self::where($username)->find();
$phoneRes = self::where($phone)->find();
$emailRes = self::where($email)->find(); if($usernameRes){
return $usernameRes;
} if($phoneRes){
return $phoneRes;
} if($emailRes){
return $emailRes;
} return null;
}

结果返回:

结果返回:

{
"code": 0,
"msg": "登录成功",
"result": {
"id": 7,
"username": "18235355939",
"nickname": "182****5939",
"phone": "18235355939",
"password": "dc483e80a7a0bd9ef71d8cf973673924",
"figure_url": null,
"email": "123@qq.com",
"last_login_time": 0,
"open_type": null,
"openid": "",
"create_time": "1970-01-01 08:00:00",
"update_time": "1970-01-01 08:00:00",
"delete_time": null
}
}

TP5框架中实现多条件登录的更多相关文章

  1. TP5框架中实现多条件登录(自写代码,密码未md5()加密)

    HTML代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  2. tp5框架中jquery+ajax分页

    jaxa分页,点击按钮直接替换数据, //php代码$page=Request::instance()->param("page"); $page = empty($page ...

  3. Git.Framework 框架随手记--ORM条件组合

    在上一篇<Git.Framework 框架随手记--ORM新增操作>中简单记录了如何对数据进行删除和修改,其用法都非常简单,在文章中提到了Where()方法,本文将详述Where() 等条 ...

  4. 关于Laravel框架中Guard的底层实现

    1. 什么是Guard 在Laravel/Lumen框架中,用户的登录/注册的认证基本都已经封装好了,开箱即用.而登录/注册认证的核心就是: 用户的注册信息存入数据库(登记) 从数据库中读取数据和用户 ...

  5. 转 asp.net中如何退出整个框架(frameset),回到登录界面

    如: <frameset rows= "74,*,0,0 " cols= "* " frameborder= "NO " border ...

  6. TP框架中如何使用SESSION限制登录?

    TP框架中如何使用SESSION限制登录? 之前总是被问题今天才明白,最高效的来做页面访问限制问题. OOP思想中的继承特性,实现验证,是否已经登录,不必每个页面都进行判断. 实现如下: 继承Cont ...

  7. TP5.1:将外部资源引入到框架中(css/js/font文件)

    为了让我们的框架形式变得更加好看,我们需要加入Bootstrap和Jq文件到框架中 1.通过Bootstrap和jq官网进行相关文件的下载 (1)Bootstrap下载地址:https://v3.bo ...

  8. thinkphp框架中处理标签中条件输出

    这个问题是这样的,当我在模板中想在标签option中在某个条件下输出selected.但是在里边嵌套if标签的话,condition里边第二个参数使用变量的时候,不能解析.所以只能使用别的方法了.达到 ...

  9. PHP-Phalcon框架中的数据库操作

    > 本文描述了PHP-Phalcon框架中数据库操作方法,主要讨论Phalcon框架的Model组件中的操作方法.更详细的Model介绍请参考:官方文档 1. 连接数据库 在Phalcon框架中 ...

随机推荐

  1. java-swing-事件监听-焦点监听器

    感谢大佬:https://blog.csdn.net/weixin_44512194/article/details/93377551 开始不知道焦点是啥,其实就是打字的时候,这个一闪一闪的竖线. 与 ...

  2. Linux忘记Root密码怎么找回

    进入1级别,单用户模式 ,修改root密码即可(运行级别不懂看这里) 具体操作如下: 1.开机时按enter键 2.进入GRUB界面 3.输入 e,在引导系统前编辑命令 4.选择第二行 kernel ...

  3. 虫师Selenium2+Python_8、自动化测试高级应用

    P205--HTML测试报告 P213--自动发邮件功能 P221--Page Object 设计模式

  4. 使用污点分析检查log4j问题

    摘要:log4j问题的余波还在继续,为什么这个问题潜伏了这么长时间,大家一直没有发现?这里从静态分析的角度谈下log4j问题的发现. 本文分享自华为云社区<使用污点分析检查log4j问题> ...

  5. c语言数据结构,你可能还不知道的顺序表

    数据结构顺序表 顺序表定义 1,前言 线性表的顺序存储又称为顺序表.它是用一组地址连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻.其最大的特点就是:元素的逻辑 ...

  6. Solution -「CF 793G」Oleg and Chess

    \(\mathcal{Description}\)   Link.   给一个 \(n\times n\) 的棋盘,其中 \(q\) 个互不重叠的子矩阵被禁止放棋.问最多能放多少个互不能攻击的车.   ...

  7. 论文解读(AGCN)《 Attention-driven Graph Clustering Network》

    Paper Information Title:<Attention-driven Graph Clustering Network>Authors:Zhihao Peng, Hui Li ...

  8. JAVA8学习——Stream底层的实现二(学习过程)

    继续深入Stream的底层实现过程 2.spliterator() 接上 https://www.cnblogs.com/bigbaby/p/12159495.html 我们这次回到最开始源码分析的地 ...

  9. RTP包中timestamp的间隔问题

    概述 近期在和同事调试G729的编解码库时碰到一个语音质量的问题,问题产生的原因和RTP包中的时间戳设置有关,特此记录下来. 问题现象,1001和1002账号注册在fs,媒体设置为G729并通过fs中 ...

  10. [LeetCode]1470. 重新排列数组

    给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,...,xn,y1,y2,...,yn] 的格式排列. 请你将数组按 [x1,y1,x2,y2,...,xn,yn] 格式重新排列, ...