默认值
如果你不想在你的模板文件中判断什么为不为空,为空的话怎样,不为空的话怎样的话,你可以在后台传入参数的时候使用默认值!
或者用TP5的三目运算符也OK的
{$user.nickname|default="这家伙很懒,什么也没留下"}
登录
controller
控制层
public function login(){
if(request()->isAjax()){//如果是ajax请求
$data = [
'login_user_name' => input('login_user_name'),
'login_password' => input('login_password'),
];
$res=model('Tbadminuser')->login($data);
//这个交给model层去做传入的数据就是$data,他会传回来给你res数据
if($res==1){
session('nick_name',Db::table('tbadminuser')->where('login_user_name',$data['login_user_name'])->value('nick_name'));
$this->success('登录成功!','admin/admin/index');//你要跳转到的页面,在Db::table指定你需要找的表,这样来取出来值放到session里面。
}else{
$this->error($res);
}
}
return view();
}
model
模型层
public function login($data){
//validate
$validate = new \app\common\validate\Tbadminuser();//新建一个这个对象来让它验证你的数据格式是不是正确的
if($validate->scene('login')->check($data)==0){
return $validate->getError();
}
//find in database
$res=$this->where($data)->find();//数据库的找,不用指定表名也可以找,
if($res){
return 1;
}else{
return "账号或密码错误!";
}
}
注册
注册需要多一个create的环节
$this->create([
'nick_name'=>$data['nick_name'],
'login_user_name'=>$data['login_user_name'],
'login_password'=> $data['login_password'],
'locked'=>0,
]);
validate
格式层
class Tbadminuser extends Validate{
//rules
protected $rule = [
'nick_name'=>'require',
'login_user_name'=>'require',
'login_password'=>'require',
];
//scene
protected $scene = [
'login'=>['login_user_name','login_password'],
'register'=>['nick_name','login_user_name','login_password']
];
}
防盗链
public function mall_goods(){
if(!session('?nick_name')){//如果session没有这个东西的话说明没有登录
$this->redirect('/index.php/admin/login');//重定向到那个地址
return ;
}else{
$this->assign('nick_name',session('nick_name'));//$this->assign("arr",$arr)中第一个参数是在模板中使用的变量名,名字可以任意取,第二个参数是传递给模板的变量。
return $this->fetch();//这个和return view()差不多
}
return view();
}