2016-09-07 12 views
1

私はLaravel 5.2を使用していて、コントローラでパスワード変更フォームを作成しようとしています。私は、次のルートを追加しました:Route.phpクラスのReflectionException App Http Controllers PasswordControllerが存在しません

Route::get('changepassword', array('as' => 'reset.password', 'uses' => '[email protected]')); 
Route::post('resetpasswordcomplete', array('as' => 'reset.password.complete', 'uses' => '[email protected]')); 

Http\Controllers\Auth\PasswordControllerは、次のメソッドがあります。

public function edit() { 
    return View::make('auth/passwords/change'); 
} 

public function update() { 
    $hasher = Sentinel::getHasher(); 

    $oldPassword = Input::get('old_password'); 
    $password = Input::get('password'); 
    $passwordConf = Input::get('password_confirmation'); 

    $user = Sentinel::getUser(); 

    if (!$hasher->check($oldPassword, $user->password) || $password != $passwordConf) { 
     Session::flash('error', 'Check input is correct.'); 
     return View::make('auth/passwords/change'); 
    } 

    Sentinel::update($user, array('password' => $password)); 

    return Redirect::to('/'); 
} 

ビューのようなある:

@if (Session::get('error')) 
    <div class="alert alert-error"> 
     {{ Session::get('error') }} 
    </div> 
@endif 

{{ Form::open(array('route' => array('reset.password.complete'))) }} 
{{ Form::password('old_password', array('placeholder'=>'current password', 'required'=>'required')) }} 
{{ Form::password('password', array('placeholder'=>'new password', 'required'=>'required')) }} 
{{ Form::password('password_confirmation', array('placeholder'=>'new password confirmation', 'required'=>'required')) }} 
{{ Form::submit('Reset Password', array('class' => 'btn')) }} 
{{ Form::close() }} 

私は思うので、私はReflectionExceptionエラーを取得しますPasswordControllerはAuthフォルダ内にあるため、忘れたパスワードを認証用足場を使用してリセットしたいゲストのみがアクセスできます。ログインしたユーザーがこのコントローラにアクセスして、パスワードを変更できるようにする方法を知りたいですか?

EDIT: パブリック関数の__construct()

{ 
    $this->middleware('guest', ['except' => ['resetpasswordcomplete', 'changepassword']]); 
} 

それはまだ戻ってホームページに私をもたらします:私はアレクセイのソリューションの後に次のやってみました。

答えて

1

変更コントローラパスでroutes.phpへ:

Route::get('changepassword', array('as' => 'reset.password', 'uses' => 'Auth\[email protected]')); 
Route::post('resetpasswordcomplete', array('as' => 'reset.password.complete', 'uses' => 'Auth\[email protected]')); 
+0

それはすぐに戻ってホームページに私をもたらします – omrakhur

関連する問題