一、添加角色
1.1 角色添加显示页面控制器方法
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('admin.role.create');
}
1.2 角色添加模版
resources\views\admin\role\create.blade.php
我们采用ajax
进行提交:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link rel="Bookmark" href="/favicon.ico">
<link rel="Shortcut Icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/admin/static/h-ui/css/H-ui.min.css" />
<link rel="stylesheet" type="text/css" href="/admin/static/h-ui.admin/css/H-ui.admin.css" />
<link rel="stylesheet" type="text/css" href="/admin/lib/Hui-iconfont/1.0.8/iconfont.css" />
<link rel="stylesheet" type="text/css" href="/admin/static/h-ui.admin/skin/default/skin.css" id="skin" />
<link rel="stylesheet" type="text/css" href="/admin/static/h-ui.admin/css/style.css" />
<title>添加角色</title>
</head>
<body>
<article class="page-container">
<!-- 表单验证 -->
@include('admin.common.validate')
<form action="{{route('admin.role.store')}}" method="post" class="form form-horizontal" id="form-member-add">
@csrf
<div class="row cl">
<label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>角色名:</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="text" class="input-text" placeholder="角色名" id="name" name="name">
</div>
</div>
<div class="row cl">
<div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
<input class="btn btn-primary radius" type="submit" value=" 添加 ">
</div>
</div>
</form>
</article>
<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="/admin/lib/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="/admin/lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="/admin/static/h-ui/js/H-ui.min.js"></script>
<script type="text/javascript" src="/admin/static/h-ui.admin/js/H-ui.admin.js"></script>
<!--/_footer 作为公共模版分离出去-->
<!--请在下方写此页面业务相关的脚本-->
<script type="text/javascript" src="/admin/lib/My97DatePicker/4.8/WdatePicker.js"></script>
<script type="text/javascript" src="/admin/lib/jquery.validation/1.14.0/jquery.validate.js"></script>
<script type="text/javascript" src="/admin/lib/jquery.validation/1.14.0/validate-methods.js"></script>
<script type="text/javascript" src="/admin/lib/jquery.validation/1.14.0/messages_zh.js"></script>
</body>
</html>
<script type="text/javascript">
// 采用ajax 进行提交
$(function() {
$("#form-member-add").validate({
// rules: {
// name: {
// required: true,
// }
// },
onkeyup: false,
focusCleanup: true,
success: "valid",
submitHandler: function(form) {
let url = $(form).attr('action');
// 表单序列化
let data = $(form).serialize();
// console.log(action, data)
$.post(url, data).then((res) => {
console.log(res);
if (res.status == 20002) {
layer.msg(res.msg, {icon: 2, time: 2000});
}
else if (res.status == 1) {
layer.msg(res.msg, {icon: 1, time: 2000},() => {
location.href = "{{route('admin.role.index')}}";
})
}
})
}
});
});
</script>
效果:
1.3 角色添加逻辑控制器
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
// 异常处理
try {
// 后台验证
$this -> validate($request, [
'name' => 'required|unique:roles,name'
]);
}
catch (Exception $e) {
return ['status' => 20002, 'msg' => '验证不通过!'];
}
// 入库
Role::create($request -> only('name'));
return ['status' => 1, 'msg' => '添加角色成功!'];
// Role::create($data);
// // 跳转到列表页
// return redirect(route('admin.role.index')) -> with('success', '添加角色成功');
}
二、角色搜索功能
修改index
控制器方法:
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
// 获取搜索框 分页
$kw = $request -> get('kw', '');
$data = Role::when($kw, function ($query) use($kw) {
$query->where('name', 'like', "%{$kw}%");
}) -> paginate($this->pagesize);
// dump($data);
return view('admin.role.index', compact('data', 'kw'));
}
效果:
总结:
when(keywords, callback)
有两个参数:参数1如果变量存在,则执行我们的回调函数。
在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。