2015-03-18 2 views
0

В Laravel 5 я замечаю, что всякий раз, когда у меня есть форма, в которой я писал в простом HTML, вместо использования Form::open требуется наличие скрытого поля ввода для токена.Форма обновления Laravel 5 с использованием простой HTML

<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>" /> 

И для формы, которая обновляет запись, необходимо иметь <input name="_method" type="hidden" value="PATCH">

Верно ли, что я всегда должен иметь эти поля при написании форм с использованием простого HTML? Есть ли другие способы сделать это, если я все еще должен писать это в простом HTML?

ответ

1

Да, это правильно. Для PATCH (и в основном всех не GET или POST-глаголов) нет другого способа, кроме использования _method.

Это описано в главе маршрутной документации: Method Spoofing

Однако вы могли отключить защиту CSRF. Я не говорю, что вы должны сделать это, но если вы хотите, вы можете отключить его, удалив Illuminate\Foundation\Http\Middleware\VerifyCsrfToken из массива промежуточного программного обеспечения в app/Http/Kernel.php

Это в документации, а также: CSRF Protection

+0

Спасибо! Мне интересно, почему это не включено в документацию? Я имею в виду, что, когда разработчик не хочет использовать помощник 'Form' и решает использовать простой HTML, эти поля необходимы. Или это написано, и я просто пропустил это? – basagabi

+0

Да, это как в документах. Я добавил ссылки на меня: :) – lukasgeiter

+0

Обратите внимание, что эти поля не обязательны для каждой формы. Это зависит от того, включена ли защита CSRF и если вы хотите настроить таргетинг на другой метод, кроме POST или GET. – lukasgeiter

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