2014-12-04 2 views
0

Привет на моей странице входа Я забыл пароль. Оттуда я должен отправить ссылки для сброса пароля пользователям. Надеюсь, я все сделал правильно, но все же получаю ошибку MethodNotAllowedHttpException.MethodNotAllowedHttpException в Laravel 4.2

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> 

Router Код

Route::resource('user', 'UserController'); 

Здесь я упомянул ресурс для UserController, где Laravel ухаживает основных CRUD маршрутов.

Route::get('login', '[email protected]'); 

Route::post('/user/store','[email protected]'); 

Route::get('logout', '[email protected]'); 

Route::get('forgot_password','[email protected]'); 

Route::post('sendresetlink','[email protected]'); 

Я упомянул sendresetlink как сообщение и позвонил контроллеру. Он даже не собирается управлять.

Route::group(array('before' => 'auth'), function() 
{ 
    Route::get('/jobs', '[email protected]_list'); 
}); 

Контроллер Код

public function sendResetLink() 
{ 
    $form_data = Input::all(); 
    echo '<PRE>'; 
    print_r($form_data); 
    exit; 
} 

Что я здесь делаю неправильно? Я что-то пропустил?

Примечание: Я установил laravel на другом компьютере и скопировал код на текущий компьютер. Может быть, из-за этого мой php-ремесленник не работает. Когда когда-либо я запускаю php-artisan в командной строке, он заявляет, что «php» не распознается как любая внутренняя внешняя команда. Я попытался установить композитор в папку php.exe. Даже тогда и бесполезно.

ответ

1

В приложении/routes.php вы написали

Route::post('sendresetlink','[email protected]'); 

Хотя в форме действия у вас есть

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

Вы можете это исправить, изменив приложение/routes.php к

Route::post('user/sendresetlink','[email protected]'); 

Промежуточный матч между вашим маршрутом и действием формы. /пользователь/ sendresetlink и только sendresetlink.

+0

Спасибо Одед Двек. Я полностью пропустил это! – Kiran

1

Заменить

Route::post('sendresetlink','[email protected]');

С

Route::post('/user/sendresetlink','[email protected]');

, и он будет работать нормально.

Пояснение:

Ваша форма action является <form action="/user/sendresetlink" ...

же должен быть согласован с параметром Route::POSTURL, как показано выше.

+0

Спасибо, Тайная. Я упустил это! Очень ценю вашу помощь. – Kiran

Смежные вопросы