laravel修改用户信息

一、修改用户信息

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="&nbsp;&nbsp;修改用户&nbsp;&nbsp;">
			</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的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你华还是你华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值