Обновление информации о пользователе Laravel - PullRequest
0 голосов
/ 10 марта 2020

Я создал пользовательский контроллер для редактирования и обновления информации о пользователе. Данные пользователя передаются в файл представления, где пользователь может обновить информацию своей учетной записи. Данные извлекаются без ошибок, но когда я обновляю значения, они не меняются. Единственное значение, которое обновляется, - это электронная почта, если я пытаюсь обновить имя или пароль, ничего не обновляется.

Вот мой контроллер, представление и маршруты.

Также, как пользователь данные передаются на страницу учетной записи.

<li><a href="{{ route('users.edit', Auth::user()) }}"><i class="fas fa-user-circle"></i>Account</a></li>
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;
use Auth;

class UserController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function edit(User $user)
    {   
        $user = Auth::user();
        return view('users.account', 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();
    }
}

@extends('layouts.template3')

@section('content')
    <burger-icon>
        {{ Breadcrumbs::render('dashboard') }}
        <div class="container">
            <div class="form-body">
                <h2>Account</h2>
                <form method="post" action="{{route('users.update', $user)}}">
                    {{ csrf_field() }}
                    {{ method_field('patch') }}

                    <div class="form-group">
                        <label for="name" class="">Nickname</label>
                        <input type="text" class="@error('name') is-invalid @enderror" name="name"  value="{{ $user->name }}" />
                    </div>

                    <div class="form-group">
                        <label for="email" class="">{{ __('E-Mail Address') }}</label>
                        <input type="email" class="@error('email') is-invalid @enderror" name="email"  value="{{ $user->email }}" />
                    </div>

                    <div class="form-group">
                        <label for="password" class="">{{ __('Password') }}</label>
                        <input type="password" class="@error('password') is-invalid @enderror" name="password" />
                    </div>

                    <div class="form-group">
                        <label for="password-confirm" class="">{{ __('Confirm Password') }}</label>
                        <input type="password" class="" name="password_confirmation" />
                    </div>

                    <button type="submit" class="btn-primary">Update</button>
                </form>
            </div>
        </div>
    </burger-icon>
@endsection
Route::get('users/{user}',  ['as' => 'users.edit', 'uses' => 'UserController@edit']);

Route::patch('users/{user}/update',  ['as' => 'users.update', 'uses' => 'UserController@update']);
class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...