【问题标题】:MethodNotAllowedHttpException in Laravel 4.2Laravel 4.2 中的 MethodNotAllowedHttpException
【发布时间】:2015-02-02 00:03:16
【问题描述】:

您好,在我的登录页面中,我忘记了密码链接。我必须从那里将重置密码链接发送给用户。我希望我做的一切都正确,但我仍然收到“ MethodNotAllowedHttpException ”错误。

HTML 代码

<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 artisan 无法正常工作。每当我在命令提示符下尝试 php artisan 时,它都会说明“php”不被识别为任何内部外部命令。我试图在 php.exe 文件夹中安装作曲家。即使那样也没有用。

【问题讨论】:

    标签: php laravel laravel-4 laravel-routing


    【解决方案1】:

    在 app/routes.php 你写的

    Route::post('sendresetlink','UserController@sendResetLink');
    

    在表单操作时

    <form action="/user/sendresetlink" method="post" id="forgot_password_form" name="forgot_password_form">
    

    您可以通过将 app/routes.php 更改为来解决此问题

    Route::post('user/sendresetlink','UserController@sendResetLink');
    

    您的路线和表单操作不匹配。 /user/ sendresetlink 和只是 sendresetlink。

    【讨论】:

    • 谢谢 Oded Dwek。我完全错过了!
    【解决方案2】:

    替换

    Route::post('sendresetlink','UserController@sendResetLink');

    Route::post('/user/sendresetlink','UserController@sendResetLink');

    它会正常工作的。

    说明:

    您的表单action&lt;form action="/user/sendresetlink" ...

    如上图Route::POSTURL参数也要匹配。

    【讨论】:

    • 谢谢神秘人。我忽略了这一点!非常感谢您的帮助。
    猜你喜欢
    • 2014-11-06
    • 2014-07-30
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2016-10-20
    • 1970-01-01
    • 2019-04-15
    相关资源
    最近更新 更多