Laravel 未找到密码重置路由
Laravel Password Reset Route not found
我正在尝试在 laravel 5.2 中完成密码重置。一切正常,直到最后一部分。
当我输入我的电子邮件和新密码时,我收到错误消息
MethodNotAllowedHttpException in RouteCollection.php line 219:
这是我的路线
Route::get('/password/reset/email', 'Auth\PasswordController@getEmail');
Route::post('/password/reset/email', 'Auth\PasswordController@postEmail');
Route::get('/password/email', 'Auth\PasswordController@sendResetLinkEmail');
Route::get('/password/reset/{token}', 'Auth\PasswordController@showResetForm');
Route::post('/password/reset', 'Auth\PasswordController@reset');
这就是我的 控制器 的样子。
<?php
namespace App\Http\Controllers\Auth;
use View;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;
class PasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Password Reset Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password reset requests
| and uses a simple trait to include this behavior. You're free to
| explore this trait and override any methods you wish to tweak.
|
*/
use ResetsPasswords;
/**
* Create a new password controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
public function getSendResetLinkEmailSuccessResponse()
{
return View::make('auth.passwordSent');
}
protected $redirectPath = '/';
}
这是表格:
<form action="" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="form-group">
<label for="login-form-email">E-mail</label>
<input type="email" name="email" id="email" class="form-control" tabindex="1" placeholder="Email" value="{{ old('email') }}">
</div>
<div class="form-group">
<label for="login-form-password">New password</label>
<input type="password" class="form-control" name="password" id="login-form-password" tabindex="2" placeholder="Password" tabindex="4">
</div><!-- /.form-group -->
<div class="form-group">
<label for="login-form-password-retype">Confirm new password</label>
<input type="password" class="form-control" name="password_confirmation" id="login-form-password-retype" tabindex="3" placeholder="Confirm password">
</div><!-- /.form-group -->
<div class="form-group">
<input type="submit" class="btn btn-primary pull-right" name="reset-confirm" id="reset-confirm" tabindex="4" value="Reset Password">
</div>
</form>
不确定为什么会出现此错误,而且我找不到解决方法。希望大家能帮帮我
这是您的重置路线:
Route::post('/password/reset', 'Auth\PasswordController@reset');
然而在您的表单中,您没有发布到这条路线:
<form action="" method="post">
改变你的行动:
<form action="/password/reset" method="post">
将表单的操作设置为 /password/reset
我正在尝试在 laravel 5.2 中完成密码重置。一切正常,直到最后一部分。
当我输入我的电子邮件和新密码时,我收到错误消息
MethodNotAllowedHttpException in RouteCollection.php line 219:
这是我的路线
Route::get('/password/reset/email', 'Auth\PasswordController@getEmail');
Route::post('/password/reset/email', 'Auth\PasswordController@postEmail');
Route::get('/password/email', 'Auth\PasswordController@sendResetLinkEmail');
Route::get('/password/reset/{token}', 'Auth\PasswordController@showResetForm');
Route::post('/password/reset', 'Auth\PasswordController@reset');
这就是我的 控制器 的样子。
<?php
namespace App\Http\Controllers\Auth;
use View;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;
class PasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Password Reset Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password reset requests
| and uses a simple trait to include this behavior. You're free to
| explore this trait and override any methods you wish to tweak.
|
*/
use ResetsPasswords;
/**
* Create a new password controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
public function getSendResetLinkEmailSuccessResponse()
{
return View::make('auth.passwordSent');
}
protected $redirectPath = '/';
}
这是表格:
<form action="" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="form-group">
<label for="login-form-email">E-mail</label>
<input type="email" name="email" id="email" class="form-control" tabindex="1" placeholder="Email" value="{{ old('email') }}">
</div>
<div class="form-group">
<label for="login-form-password">New password</label>
<input type="password" class="form-control" name="password" id="login-form-password" tabindex="2" placeholder="Password" tabindex="4">
</div><!-- /.form-group -->
<div class="form-group">
<label for="login-form-password-retype">Confirm new password</label>
<input type="password" class="form-control" name="password_confirmation" id="login-form-password-retype" tabindex="3" placeholder="Confirm password">
</div><!-- /.form-group -->
<div class="form-group">
<input type="submit" class="btn btn-primary pull-right" name="reset-confirm" id="reset-confirm" tabindex="4" value="Reset Password">
</div>
</form>
不确定为什么会出现此错误,而且我找不到解决方法。希望大家能帮帮我
这是您的重置路线:
Route::post('/password/reset', 'Auth\PasswordController@reset');
然而在您的表单中,您没有发布到这条路线:
<form action="" method="post">
改变你的行动:
<form action="/password/reset" method="post">
将表单的操作设置为 /password/reset