2013-06-21 5 views
2

У меня есть форма, как этотформа представляет, как GET Laravel 4

<form action="{{ Request::root() }}/articles/update/" method="post"> 
    <input type="hidden" name="id" value="{{ $article->id }}" /> 
    <input type="submit" name="submit" value="Submit" /> 
</form> 

И маршрут как этот

Route::post('articles/update', array('as' => 'articleUpdate', 'uses' => '[email protected]')); 

Но когда я отправить форму, я получаю MethodNotAllowedHttpException. В отчете об ошибке я вижу, что метод запроса - GET. Я также пытался использовать кепки для метода method="POST", но это не сработало.

Любые идеи?

+0

проблемы, скорее всего, в конфигурации Laravel, если оно '$ _GET' ваши поля, он не будет работать, если вы' Post' их –

+0

У меня есть другой маршрут POST, который работает. Это было для входа. Но этот не будет работать –

ответ

1

Что показывает инспектор FireBug/Web console? это форма, отправляемая через GET или POST, любые переадресации?

Кажется проблемой перенаправления для меня, после достижения сервера Laravel перенаправляет на URL-адрес форму, отправленную почтовым запросом.

+0

Кажется, что у меня есть «Перемещено навсегда - 301» для запроса POST, а также тот же запрос с методом GET, который терпит неудачу. –

+0

Другое дело, что я заметил, что он перенаправляет без завершающего слэша, хотя действие формы имеет завершающую косую черту. Любые идеи? –

+0

Удалите косые черты из формы и повторите тест. Если это проблема, тогда '.htaccess' должен игнорировать эти перенаправления при получении POST-информации. –

0

Вы должны использовать метод put здесь. изменение формы, как этого

{{Form::open(array('url'=>'/articles/update','method' => 'PUT'))}} 

Маршруты, как этот

Route::put('/articles/update','[email protected]'); 
Смежные вопросы