$data 未定义?

来源:6-16 登录优化- 控制器业务代码抽离到business层(最新)

inci

2020-02-06

6-16 登录优化

login.php
<?php
namespace appadmincontroller;

use Exception;
use thinkacadeView;

class Login extends AdminBase
{
    public function initialize()
    {
        if ($this->isLogin()) {
            return $this->redirect(url('index/index'));
        }
    }
    public function index(): string
    {
        try {
            return View::fetch();
        } catch (Exception $e) {
            return show(config('status.error'), '模板不存在');
        }
    }

    public function test(): void
    {
        halt(session(config('admin.session_admin')));
    }


    public function check()
    {
        if (!$this->request->isPost()) {
            return show(config('status.error'), '请求方式错误');
        }
        //参数校验 1.原生方式 2.TP6验证机制
        $username = $this->request->param('username', '', 'trim');
        $password = $this->request->param('password', '', 'trim');
        $captcha = $this->request->param('captcha', '', 'trim');
        if (empty($username) || empty($password) || empty($captcha)) {
            return show(config('status.error'), '参数不能为空');
        }
        if (!captcha_check($captcha)) {
            //验证码校验失败
            //验证码存放于session中使用验证码需要开启session在app下的全局文件middleware.php中
            return show(config('status.error'), '验证码不正确');
        }

        $adminUserObj = new appadminlogicAdminUser();
        $reuslt = $adminUserObj ->login($data);
			//登录提醒未定义变量: data
        return $reuslt;
    }
}
business层AdminUser.php  我放在logic文件里了
<?php

namespace appadminlogic;

use Exception;

class AdminUser
{
    public function login($data)
    {
        try {
            $adminUserObj = new appmodelAdminUser();
            $adminUser = $adminUserObj->getAdminUserByUsername($data['username']);

            //判断用户名是否存在
            if (empty($adminUser) || $adminUser->status !== config('status.mysql.table_normal')) {
                return show(config('status.error'), '不存在该用户');
            }
            $adminUser = $adminUser->toArray();

            //判断密码是否和数据库中一致
            if ($adminUser['password'] !== md5($data['password'] . config('my.salt'))) {
                return show(config('status.error'), '密码错误');
            }

            //需要记录信息到mysql表中
            $updateData = [
                'last_login_time' => time(),
                'last_login_ip' => request()->ip(),
                'update_time' => time(),
            ];
            $res = $adminUserObj->updateById($adminUser['id'], $updateData);
            if (empty($res)) {
                return show(config('status.error'), '登录失败');
            }
        } catch (Exception $e) {
            return show(config('status.error'), '内部异常,登录失败');
        }

        //记录session
        session(config('admin.session_admin'), $adminUser);

        return show(config('status.success'), '登录成功');
    }
}

图片描述

写回答

4回答

inci

提问者

2020-02-06

看到了,,把validate也删除掉了~~~~~粗心阿


谢谢`~~~~

老师顺便回答 一下那个验证码的问题哇~~

0
1
singwa
客气了,祝您学习愉快 验证码问题搞定了吗,亲。
2020-02-08
共1条回复

inci

提问者

2020-02-06

business层的 AdminUser 的

public function login($data)   ??

0
0

inci

提问者

2020-02-06

//img.mukewang.com/szimg/5e3c32ce0959dd2f17020804.jpg

视频上有这个?

0
1
singwa
但是老师上面定义了 $data
2020-02-06
共1条回复

singwa

2020-02-06

//img.mukewang.com/szimg/5e3c323709bda04115461142.jpg


您好,您这个地方并没有看到哪里有data的定义

0
0

全流程开发 TP6.0实战高并发电商服务系统

一课就能掌握TP6.0基础及运用,打造完整高并发的电商后端项目

1458 学习 · 1310 问题

查看课程