Laravel Auth更新用户

时间:2019-06-25 09:55:06

标签: laravel

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

当我转到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']);

UserController-控制器


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();
    }
}

user / 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>

路由正常,输入数据,然后单击“发送”,数据不存储

1 个答案:

答案 0 :(得分:0)

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

use Illuminate\Support\Facades\Hash;

Hash::make(request('password'));

因此您可能会发现bcrypt无效。