Laravel auth update user - PullRequest
       4

Laravel auth update user

0 голосов
/ 25 июня 2019

Я пытаюсь создать страницу для редактирования профиля авторизованного пользователя.

Когда я захожу на 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 - Controller


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 голосов
/ 25 июня 2019

Laravel теперь использует это для шифрования паролей:

use Illuminate\Support\Facades\Hash;

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

Так что вы можете обнаружить, что bcrypt не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...