后台登录逻辑 增删改查功能实现 过滤 Ajax

后台登录逻辑

  1. 接受表单提交 的数据
$input=$request->except('_token');
  1. 进行表单验证
$validator=Validator:make('需要验证的表单数据','验证规则,'错误提示信息‘)$validator=\Validator::make($request->input(),[
                'Student.name'=>'required|min:2|max:20',
                'Student.age'=>'required|integer',
                'Student.sex'=>'required|integer' ,
            ],[
//                attribute属性
                'required'=>':attribute 为必选项',
                'min'=>':attribute 长度不符合要求',
                'integer'=>':attribute 必须为整数',
            ],[
                'Student.name'=>'姓名',
                'Student.age'=>'年龄',
                'Student.sex'=>'性别',
            ]);

第二种

$rule=[
验证规则
];
$msg=[
错误提示信息
];
$validator=Validator::make($input,$rule,$msg)
  1. 验证是否有此用户(用户名 密码 验证码)
    新建model:user(在databse.php里加前缀’prefix’=>‘blog’)
  • 关联数据表
  • 主键
  • 允许批量操作的字段(public $guarded=[];)
  • 是否维护时间戳
$user=User::where('user_name',$input['username'])->first();)
if(!user){
	return redirtect('admin/ogin')->with('error','用户名为空')}
if($input['password']!=Crypt::decrypt($user->user_pass)){
	return redirtect('admin/ogin')->with('error','密码为空')}

if($input['code']==session()->get('code'))
  1. 保存用户信息到session中
session()->put('user',$user),
  1. 跳转到后台首页
return redired('admin/index');

//加密算法

  1. md5加密,生成一个32位的字符串
$str='salt'.'12345';
return md5($str);
  1. 哈希加密,65位数
$hash=Hash::make($str);
if(Hash::check($str,$hash)){return ’密码正确‘;}//判断密码和加密密码是否一致
  1. crypy加密(),255位数
$crypy_str=Crypt::encrypt($str);

解密:

if(Crypt::decrypt($crypt_str)==$str){return ’密码正确‘;}

添加中心件

  1. 声明中心件
  2. 写中间件应用逻辑
  3. 注册中心件
  4. 使用中心件

用户模块
资源路由

  • index获取用户列表
  • create返回用户添加操作
  • store执行添加操作
  • show显示一条用户记录
  • edit返回一个修改页面
  • update执行一个修改操作
  • destory执行删除操作

增删改查功能实现

  • 增加操作:
  1. 接收前台表单提交的数据
  2. 进行表单验证
  3. 添加到数据库user表
    4.根据是否成功,给客户端返回一个json格式的反馈
  • 修改操作:
  1. 根据id获取要修改的值
$user=User::find($id);
  1. 获取要修改的用户名
$username=$request->input('usrname');
$user->user_name=$username;
$res=$user->save();
  1. 返回json值给ajax
if($res){
    $data = [
        'status' => 1,
        'message' => '修改成功',
    ];
}else{
    $data = [
        'status' => 0,
        'message' => '修改失败',
    ];
}
return $data;
  • 删除操作:
οnclick="member_del(this,'要删除的id')" href="javascript:;"
ajax:
function member_del(obj,id) {
    layer.confirm('确认要删除吗?',function (index) {
        $.post('user'+id,{"_method":"delete","_token":"{{csrf_token()}}"},function (data) {
            // console.log(data);
            if (data.status==0){
                $(obj).parents("tr").remove();
                layer.msg(data.message);
            }else {
                layer.msg(data.message);
            }
        })
        
    })

}

ajax的使用
在这里插入图片描述

form.on('submit(add)', function(data){
    $.ajax({
        {{--// 1.2提交方法{{}}--}}
        type:'POST',
        {{--1.3提交路径{{}}--}}
        // url:'/dormitory/tenantInfo',
        url:'/student3',

        // 1.4数据格式
     
        dataType:'json',
        {{--1.5  HTTP请求头,_token令牌 需要在form中增加{{csrf_field()}}--}}
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        {{--1.6 获取数据,layui规范方法{{}}--}}
        data:data.field,
        {{--1.7.0传输数据至后台,成功情况返回数据信息{{}}--}}
        success:function (data) {
            {{--1.7.1采用console.log(data)控制器中写return 111来验证前端是否书写正确{{}}--}}
            // console.log(data);
            {{--1.7.2判断后台传回的值:成功:弹层提示添加成功,并刷新父页面{{}}--}}
            if(data.status == 1){
                layer.alert(data.message,{icon:6},function () {
                    parent.location.reload(true);
                })
            }else{
                {{--1.7.3判断后台传回的值:失败,只弹层,不操作{{}}--}}
                layer.alert(data.message,{icon:5})
            }
        },
        {{--1.8传输错误{{}}--}}
        error:function() {
            //错误信息
        }
    })
    return false;
});
{{--End:1.Ajax添加信息{{}}--}}

分页
后端:

$user=User::paginate();
//每页几条

前端:

<div class="page">
 //   {{$user->appends($request->all())->render()}}
{!! $user->render() !!}
</div>

多条件查询
资源类型

dbx模块中使用两种资源类型。第一个是数据库连接的链接对象,第二个是保存查询结果的结果对象。

过滤
后台:(自己选定分页几条,用户名,邮箱进行筛选)

 $where = function ($query) {
	  $query->where('d_id', '=', '82')
	  ->orWhere('d_id', '=', '83');
  }
  //$query保存查询结果的结果对象。
//如果需要传入变量 就需要use一下
$user=User::orderBy('user_id','asc')->where(function($query) use($request){
	$username=$request->input('username');
	$email=$request->input('email');
	if(!empty($username)){
		$query->where('user_name','like','%'.$username.'%');
	}
	if(!empty($email)){
		$query->where('email','like','%'.$email.'%');
	}
})->paginate($request->input('num')?$request->input('num'):3);
return view('admin.user.list',compact('user','request));

客户端
判断:

<select name="num" id="fenye">
    <option value="3" @if($request->input('num')==3) selected @endif>3</option>
    <option value="5" @if($request->input('num')==5) selected @endif>5</option>

</select>
<div>
    {{--autocomplete 属性规定输入字段是否应该启用自动完成功能。--}}
    <input type="text" value="{{$request->input('username')}}" autocomplete="off">
    <input type="text" value="{{$request->input('email')}}" autocomplete="off">
</div>

分页:

<div class="page">
 {{$user->appends($request->all())->render()}}
</div>

后台-RBAC权限管理
作用:控制不同的角色合理的访问不同的资源
权限模型:RBAC——基于角色的权限控制
优点
1.简化了用户和权限的关系
2.易扩展、易维护
权限赋值给角色
用户赋值角色

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值