一、修改用户信息
1.1、定义路由
// 修改用户显示
Route::get('user/edit/{id}', 'UserController@edit') -> name('admin.user.edit');
// 修改用户处理
Route::put('user/edit/{id}', 'UserController@update') -> name('admin.user.edit');
1.2、控制器
// 修改用户显示
public function edit (int $id) {
$model = User::find($id);
return view('admin.user.edit', compact('model'));
}
// 修改用户处理
public function update (Request $request, int $id) {
$model = User::find($id);
// 原密码
$spass = $request -> get('spassword');
// 原密码密文
$oldpass = $model -> password;
$bool = Hash::check($spass, $oldpass);
// dump($bool);
if ($bool) {
// 修改
$data = $request -> only([
'username',
'password',
'phone',
'sex',
'email'
]);
if (!empty($data['password'])) {
$data['password'] = bcrypt($data['password']);
}
else {
unset($data['password']);
}
$model -> update($data);
return redirect(route('admin.user.index')) -> with('success','修改用户成功');
}
else {
return redirect(route('admin.user.edit', $model)) -> withErrors(['error' => '原密码不正确']);
}
}
1.3、修改模版
views/admin/user/index.blade.php
:
@if($item -> deleted_at == null)
<span class="label label-primary radius">
<a href="{{route('admin.user.edit', $item)}}">修改</a>
</span>
@endif
在
views/admin/user
新增edit.blade.php
模版。代码在如下关键代码给出。
二、本节关键代码
UserController.php
:
<?php
// 后台用户管理
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use Faker\Provider\Base;
use App\Models\User;
use Mail;
use Illuminate\Mail\Message;
// 验证铭文密码与加密的密码是否一致
use Hash;
class UserController extends BaseController
{
// 用户列表
public function index() {
// echo $this->pagesize;
// 分页 withTrashed()显示所有的,包括已经进行了软删除的
$data = User::orderBy('id', 'desc') -> withTrashed() -> paginate($this->pagesize);
return view('admin.user.index', compact('data'));
}
// 用户增加显示
public function add() {
return view('admin.user.add');
}
// 用户添加处理
public function create(Request $request) {
$this->validate($request, [
// 唯一性验证
'username' => 'required|unique:users,username',
// 'account' => 'required',
'phone' => 'phone',
'email' => 'required',
'password' => 'required|confirmed',
]);
// dump($request -> all());
// 获取表单数据
$post = $request -> except(['_token', 'password_confirmation']);
$post['password'] = bcrypt($post['password']);
// 添加用户入库
$userModel = User::create($post);
// dump($userModel);
// 密码
$pwd = $post['password'];
// 发邮件给用户 (匿名函数传入外部变量 用use)
Mail::send('mail.useradd', compact('userModel', 'pwd'), function(Message $message) use ($userModel){
// 发给谁
$message ->to($userModel -> email);
// 主题
$message -> subject('开通账户邮件通知');
});
// 跳转到列表页
return redirect(route('admin.user.index')) -> with('success', '添加用户成功');
}
// 删除用户操作
public function del(int $id) {
// 软删除
User::find($id) -> delete();
// 强制删除 在配置了软删除的时候,真实的删除操作
// User::find($id) -> forceDelete();
return ['status' => 0, 'msg' => '删除成功'];
}
// 恢复用户
public function restore(int $id) {
// 还原
User::onlyTrashed() -> where('id', $id) -> restore();
return redirect(route('admin.user.index')) -> with('success', '还原成功');
}
// 全选删除用户
public function delall (Request $request) {
$ids = $request -> get('id');
User::destroy($ids);
return ['status' => 1, 'msg' => '全选删除成功'];
}
// 修改用户显示
public function edit (int $id) {
$model = User::find($id);
return view('admin.user.edit', compact('model'));
}
// 修改用户处理
public function update (Request $request, int $id) {
$model = User::find($id);
// 原密码
$spass = $request -> get('spassword');
// 原密码密文
$oldpass = $model -> password;
$bool = Hash::check($spass, $oldpass);
// dump($bool);
if ($bool) {
// 修改
$data = $request -> only([
'username',
'password',
'phone',
'sex',
'email'
]);
if (!empty($data['password'])) {
$data['password'] = bcrypt($data['password']);
}
else {
unset($data['password']);
}
$model -> update($data);
return redirect(route('admin.user.index')) -> with('success','修改用户成功');
}
else {
return redirect(route('admin.user.edit', $model)) -> withErrors(['error' => '原密码不正确']);
}
}
}
edit.blade.php
:
<!--_meta 作为公共模版分离出去-->
<!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>修改用户 - H-ui.admin v3.1</title>
</head>
<body>
<article class="page-container">
<!-- 表单验证 -->
@include('admin.common.validate')
<form action="{{route('admin.user.edit', $model)}}" method="post" class="form form-horizontal" id="form-member-add">
<!-- 让表单模拟put提交 -->
@method('PUT')
@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" value="{{$model -> username}}" placeholder="姓名" id="username" name="username">
</div>
</div>
<!-- <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" value="{{old('account')}}" placeholder="账号" id="account" name="account">
</div>
</div> -->
<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="password" class="input-text" autocomplete="off" name="spassword" >
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-3">密码:</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="password" class="input-text" autocomplete="off" value="" placeholder="密码" id="password" name="password">
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-3">确认密码:</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="password" class="input-text" autocomplete="off" placeholder="确认新密码" id="password_confirmation" name="password_confirmation">
</div>
</div>
<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 skin-minimal">
<div class="radio-box">
<input name="sex" type="radio" id="sex-1" value="0" checked>
<label for="sex-1">男</label>
</div>
<div class="radio-box">
<input type="radio" id="sex-2" name="sex" value="1">
<label for="sex-2">女</label>
</div>
<!-- <div class="radio-box">
<input type="radio" id="sex-3" name="sex">
<label for="sex-3">保密</label>
</div> -->
</div>
</div>
<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" value="{{$model -> phone}}" placeholder="手机号码" id="phone" name="phone">
</div>
</div>
<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="@" value="{{$model -> email}}" name="email" id="email">
</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>
<script type="text/javascript">
$(function(){
$('.skin-minimal input').iCheck({
checkboxClass: 'icheckbox-blue',
radioClass: 'iradio-blue',
increaseArea: '20%'
});
$("#form-member-add").validate({
rules:{
username:{
required:true,
},
spassword: {
required: true,
},
// password: {
// required: true,
// },
password_confirmation: {
equalTo: '#password'
},
phone:{
required:true,
isMobile:true,
},
email:{
required:true,
email:true,
},
},
});
});
</script>
<!--/请在上方写此页面业务相关的脚本-->
</body>
</html>
在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。