嗨,在我的登录页面中,我忘记了密码链接。我必须从那里向用户发送重置密码链接。我希望我做对了所有事情,但我仍然收到" 方法不允许HttpException "错误。
网页代码
<form action="/user/sendresetlink" method="post" id="forgot_password_form" name="forgot_password_form">
<label for="name" class="col-xs-4 control-label">User Name</label>
<input type="text" id="user_name" name="user_name" class="form-control" />
<button type="submit" class="btn bg-olive btn-block">Send</button>
</form>
路由器代码
Route::resource('user', 'UserController');
在这里,我提到了UserController的资源,其中laravel负责基本的CRUD路由。
Route::get('login', 'UserController@create');
Route::post('/user/store','UserController@store');
Route::get('logout', 'UserController@destroy');
Route::get('forgot_password','UserController@forgotPassword');
Route::post('sendresetlink','UserController@sendResetLink');
我已经提到 sendresetlink 作为帖子并调用控制器。它甚至不会进入控制器。
Route::group(array('before' => 'auth'), function()
{
Route::get('/jobs', 'JobsController@jobs_list');
});
控制器代码
public function sendResetLink()
{
$form_data = Input::all();
echo '<PRE>';
print_r($form_data);
exit;
}
我在这里做错了什么?我错过了什么吗?
注意:我已经在另一台机器上安装了laravel,并将代码复制到当前机器上。可能是因为这个,我的php工匠不工作。当我在命令提示符下尝试 php artisan 时,它指出"php"不被识别为任何内部外部命令。我尝试在 php.exe 文件夹中安装作曲家。即便如此也没用。
在应用程序/路由中.php您已经写了
Route::post('sendresetlink','UserController@sendResetLink');
在表单操作中,您有
<form action="/user/sendresetlink" method="post" id="forgot_password_form" name="forgot_password_form">
您可以通过更改应用程序/路由来解决此问题.php
Route::post('user/sendresetlink','UserController@sendResetLink');
您的路线与表单操作之间存在不匹配。/user/ sendresetlink 和 sendresetlink。
替换
Route::post('sendresetlink','UserController@sendResetLink');
跟
Route::post('/user/sendresetlink','UserController@sendResetLink');
它会正常工作。
解释:
您的表单action
<form action="/user/sendresetlink" ...
如上所示,应与Route::POST
的URL
参数匹配。