2015-08-05 7 views
1

У меня есть две кнопки на домашней странице - Читатель & Писатель - который направляет пользователя к регистрационной форме с зная profession.MethodNotAllowedHttpException - Laravel 5,1

Route::post('register', [ 
'as' => 'profession_path', 
'uses' => '[email protected]' 
]); 

Route::get('auth/register', 'Auth\[email protected]'); 
Route::post('auth/register', 'Auth\[email protected]'); 

Когда я обычно иду в .com/auth/register я могу зарегистрировать пользователь успешно, поэтому форма работает отлично.

ProfessionController

class ProfessionController extends Controller 
{ 

    public function displayForm() 
    { 
    $input = \Input::get(); 
    $profession = $input['profession']; 
    return view('auth/register', ['profession' => $profession]); 
    } 
} 

Он также успешно работает, когда я нажимаю на кнопку и перенаправлять .com/register и признает $profession. Однако, когда я нажимаю на кнопку отправки на регистрационную форму (которая обычно находится в .com/auth/register и работает успешно там), он выдает ошибку:

MethodNotAllowedHttpException in RouteCollection.php line 201:

Где я отсутствующий?

+0

Вы пытаетесь использовать одну и ту же регистрационную форму для читателя и писателя? В чем разница в регистрации между читателем и писателем? –

+0

Да, я помещаю скрытое поле в регистрационную форму как '$ профессия, поэтому гостю не нужно выбирать его снова. Но если гость приходит непосредственно на страницу регистрационной формы, он показывает переключатели. Разница между читателем и писателем будет отличаться после входа. – senty

+0

Как вы называете это поле в контроллере? –

ответ

1

согласно вашему вопросу, я думаю, что вы делаете неправильно в своей форме. в вашем маршруте вы делаете запрос на получение и отправку.

Route::get('auth/register', 'Auth\[email protected]'); 
Route::post('auth/register', 'Auth\[email protected]'); 

обычно образуют представить это сообщение метод, который вы должны указать в вашей форме, как

{{ Form::open(array('method' => 'post')) }} 

{{ Form::open(array('method' => 'get')) }} 

если вы используете обычный HTML, то запрос

<form method="POST" action="http://currenturl" accept-charset="UTF-8"> 
<form method="GET" action="http://currenturl" accept-charset="UTF-8"> 

Laravel маршрут выглядеть так

Route::get() will respond to GET requests. 
Route::post() will respond to POST requests. 
Route::delete() will respond to DELETE requests (this includes when adding the custom DELETE 
Route::put() will respond to PUT requests (this includes when adding the custom PUT 
Route::patch() will respond to PATCH requests (this includes when adding the custom PATCH