微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel学习笔记11用户修改信息

  1. 父视图
// auth()->user()可以获取当前用户信息
<a href="{{route('user.edit', auth()->user())}}" class="btn btn-danger my-2 my-sm-0 mr-2">修改</a>
  1. 资源控制器的edit方法(负责修改页面
    public function edit(User $user)
    {
        return view('user.edit', compact('user'));
    }
  1. 子视图
@extends('layouts.default')
@section('content')
    <form action={{route('user.update', $user)}} method="post">
    
        @csrf
		{{-- 模拟put方法--}}
        @method('PUT')
        
        <div class="card">
            <div class="card-body">
                <div class="form-group">
                    <label for="">昵称</label>
                    <input type="text" class="form-control" name="name" value={{$user->name}}>
                </div>
                <div class="form-group">
                    <label for="">密码</label>
                    <input type="text" class="form-control" name="password">
                </div>
                <div class="form-group">
                    <label for="">确认密码</label>
                    <input type="text" class="form-control" name="password_confirmation">
                </div>
            </div>

            <div class="card-footer text-muted">
                <button type="submit" class="btn btn-success">修改</button>
            </div>
        </div>
    </form>
@endsection
  1. 资源控制器的update方法(负责验证和更新)
    public function update(Request $request, User $user)
    {
        $request->validate([
            'name' => 'required|min:3',
            'password' => 'nullable|min:5|confirmed'
        ]);
        
        session()->flash('success', '修改成功');
        
        // 数据更新
        $user->name = $request->name;     
        if ($request->password) {
            $user->password = bcrypt($request->password);
        }
        $user->save();
        
        return redirect()->route('user.show', $user);
    }

save和create方法都可以用于创建数据,但是save可以用来更新数据

Mush1 发布了14 篇原创文章 · 获赞 0 · 访问量 105 私信 关注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。