1、管理員頁面—頁面?zhèn)髦?/h4>
(1)創(chuàng)建一個Login控制器
D:\phpstudy_pro\WWW\yifeng>php think make:controller admin@Login --plain

image.png
(2)admin\view\login\login.html 創(chuàng)建目錄和文件把x-admin中的的login.html過來,模版部分不用修改,修改js部分

image.png
(3)app\admin\controller\Login.php
<?php
declare (strict_types = 1);
namespace app\admin\controller;
use think\facade\Request;
class Login
{
//加載登錄頁面
public function login(){
return view();
}
//登錄數(shù)據(jù)處理
public function dologin(Request $request){
halt($request::post());
}
}
(4)演示(表明傳輸?shù)胶笈_了,后臺還沒有做判斷方法)

image.png
2、帳號密碼規(guī)則驗證及正確性驗證
(1)驗證器 app\admin\validate\Manager.php 中加入用戶名和密碼的驗證

image.png
(2)控制器app\admin\controller\Login.php
<?php
declare (strict_types = 1);
namespace app\admin\controller;
use think\facade\Request;
use think\admin\model\Manager;
use app\admin\model\Manager;
use think\facade\Session;
class Login
{
//加載登錄頁面
public function login(){
return view();
}
//登錄數(shù)據(jù)處理
public function dologin(Request $request){
$data = $request::post();
//返回模型中的處理結(jié)果,把post獲取的$data傳參給模型Model/manager.php中的checkLogin方法
$result = Manager::checkLogin($data);
return json($result);
}
}
(3)模型 app\admin\model\Manager.php
//處理登錄驗證
public static function checkLogin($data){
//數(shù)據(jù)的基礎(chǔ)驗證
try {
$result = validate(ManagerValidate::class)->scene('login')->check($data);
} catch (ValidateException $e) {
// 驗證失敗 輸出錯誤信息
return return_msg(0,$e->getError());
}
//驗證用戶名和密碼
$m = self::where('username',$data['username'])->find();
if(!$m){
return return_msg(0,'用戶名不存在');
}
if(password_verify($data['password'],$m['password']) !== true)
return return_msg(0,'密碼輸入錯誤');
{
session('username',$data['username']);
session('userid',$m['id']);
return return_msg(1,'登錄成功');
}
}
為了區(qū)分驗證場景,密碼修改的模型方法中,驗證中加入場景判斷

image.png
(5)效果

image.png