Могу ли я обновить свой пароль в laravel и mongodb? - PullRequest
0 голосов
/ 29 марта 2019

Я кодирую в laravel, я должен обновить свой пароль, я сделал несколько кодировок, но он показывает эту ошибку

Создание объекта по умолчанию из пустого значения

Вот мой код в контроллере

public function passwordChange(Request $request, $email)
    {
        $user = User::find($email);

        $user->password = $request->get('password');
        $user->save();

        return redirect('home');
    }

У меня есть пароль в сеансе

Это код моего блейд-файла

<section id="wrapper">
        <div class="login-register" style="background-image:url(../assets/images/background/pic.jpg);">
            <div class="login-box card">
                <div class="card-body">

                    @if(Session::has('key'))
                        {{Session::get('key')['email']}}
                    @endif

                    <form class="form-horizontal form-material" id="loginform" method="POST" action="{{ url('reset-password', 'email')}}">
                        @csrf

                        <h3 class="box-title m-b-20">{{__('Recover Password')}}</h3>
                        <div class="form-group ">
                            <div class="col-xs-12">
                                <input class="form-control" type="password" required name="password" placeholder="New Password">
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="col-xs-12">
                                <input class="form-control" type="password" required placeholder="Confirm Password">
                            </div>
                        </div>
                        <div class="form-group text-center p-b-10">
                            <div class="col-xs-12">
                                <button class="btn btn-info btn-lg btn-block text-uppercase waves-effect waves-light" type="submit">
                                {{__('Set New Password')}}</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </section>

Вот мой маршрутный файл

 Route::post('reset-password/{email}', 'AdminController@passwordChange');

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Проблема заключается в том, что вы находите письмо с помощью метода find, поскольку метод find() находит запись по его свойству $primaryKey.Вместо этого вы можете сделать как

$user = User::where('email',$email)->first()
$user->password = $request->get('password');
$user->save();

Я предлагаю вам сохранить пароль в форме хэша.Вы можете использовать вспомогательную функцию bcrypt или Hash::make($yourPassword)

0 голосов
/ 29 марта 2019

Метод ::find() Коллекции ищет id или указанный первичный ключ вашей Модели, вам следует попробовать:

::where('email', $email)->first()
...