我是Laravel的新手,我在使用4.2版的系统上进行了一些测试。我正在尝试关注文档以进行密码重置。到目前为止
当我从电子邮件中打开电子邮件时,我会收到此错误:
异常'symfony component httpkernel extception notfoundhttpexception'
URL是:http://example.com/reset/20E2535A11F7C88D1132C55C752A3A3A3A8569ADBF5F
这是我的路线
Route::get('/password', ['uses' => 'RemindersController@getRemind']);
Route::get('/reset', ['uses' => 'RemindersController@getReset']);
这在RemindersController
public function getReset($token = null)
{
if (is_null($token)) App::abort(404);
return View::make('site.reset')->with('token', $token);
}
和DOC的表格
<form action="{{ action('RemindersController@postReset') }}" method="POST">
<input type="hidden" name="token" value="{{ $token }}">
<input type="email" name="email">
<input type="password" name="password">
<input type="password" name="password_confirmation">
<input type="submit" value="Reset Password">
</form>
我理解错误..这是在说找不到路径/文件,但在那里。
在您的html表单中,有 action()
方法称为 RemindersController@postReset
:
<form action="{{ action('RemindersController@postReset') }}" method="POST">
<input type="hidden" name="token" value="{{ $token }}">
<input type="email" name="email">
<input type="password" name="password">
<input type="password" name="password_confirmation">
<input type="submit" value="Reset Password">
</form>
但是您的路线使用GET
。您必须使用POST
从:
Route::get('/reset', ['uses' => 'RemindersController@getReset']);
to:
Route::post('/reset', ['uses' => 'RemindersController@getReset']);
我认为您可以使用这种方式。它也许更好:
Route::match(['GET','POST'], ['uses' => 'RemindersController@getRemind']);
更新:路由也应该有token
,因为URL为/reset/token
:
Route::get('/reset/{token}', ['uses' => 'RemindersController@getReset']);
检查您的默认控制器或默认的安全控制器是否未加载某个地方,也不会覆盖'重置'路由,使用命令行中的应用程序目录进入您的应用程序目录:
php artisan routes
这应该向您展示您的路线是否已注册以及哪个控制器/操作。