【问题标题】:Laravel auth update userLaravel 授权更新用户
【发布时间】:2019-11-07 03:07:38
【问题描述】:

我正在尝试创建一个页面来编辑已登录用户的个人资料。

当我转到 localhost.dev/users/1 时,表单会显示。 然后我输入新的详细信息并单击发送。 页面重新加载。 然后我注销并输入新密码,但无法识别。 看起来提交时数据没有存储在数据库中。

路线

Route::get('users/{user}',  ['as' => 'users.edit', 'uses' => 'UserController@edit']);

Route::patch('users/{user}/update',  ['as' => 'users.update', 'uses' => 'UserController@update']);

用户控制器 - 控制器


namespace App\Http\Controllers;

use Illuminate\Support\Facades\Auth;
use App\User;

class UserController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth');
    }

    public function edit(User $user)
    {
        $user = Auth::user();
        return view('users.edit', compact('user'));
    }

    public function update(User $user)
    {
        $this->validate(request(), [
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'password' => 'required|min:6|confirmed'
        ]);

        $user->name = request('name');
        $user->email = request('email');
        $user->password = bcrypt(request('password'));

        $user->save();

        return back();
    }
}

用户/edit.blade.php - 查看

<form method="post" action="{{route('users.update', $user)}}">
    {{ csrf_field() }}
    {{ method_field('patch') }}

    <input type="text" name="name"  value="{{ $user->name }}" />

    <input type="email" name="email"  value="{{ $user->email }}" />

    <input type="password" name="password" />

    <input type="password" name="password_confirmation" />

    <button type="submit">Send</button>
</form>

路线有效,输入数据并点击“发送”数据未存储

【问题讨论】:

    标签: laravel


    【解决方案1】:

    Laravel 现在使用它来加密密码:

    use Illuminate\Support\Facades\Hash;
    
    Hash::make(request('password'));
    

    所以你可能会发现bcrypt 不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-12
      • 2019-03-07
      • 2019-09-27
      • 2018-06-13
      • 1970-01-01
      • 2020-06-04
      • 1970-01-01
      • 2021-11-15
      相关资源
      最近更新 更多