RouteException中的ReflectionException类App \ Http \ Controllers \ PasswordController不存在
问题描述:
我正在使用Laravel 5.2并尝试使用其控制器进行密码更改。我已经添加了以下路线:RouteException中的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文件夹内部,因此只有想要使用auth脚手架重置遗忘密码的访客才能访问。我想知道如何让登录的用户访问此控制器,以便他们可以在需要时更改密码?
编辑:我想这样做后阿列克西的解决方案如下: 公共职能__construct()
{
$this->middleware('guest', ['except' => ['resetpasswordcomplete', 'changepassword']]);
}
它仍然使我回到主页。
答
变化控制器路径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]'));
现在让我回到主页 – omrakhur