【问题标题】:Laravel 5 update form using plain HTMLLaravel 5 使用纯 HTML 更新表单
【发布时间】:2015-03-18 21:00:01
【问题描述】:

在 Laravel 5 中,我注意到每当我有一个用纯 HTML 编写的表单时,而不是使用 Form::open,它需要有一个隐藏的令牌输入字段。

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

对于更新记录的表单,需要&lt;input name="_method" type="hidden" value="PATCH"&gt;

在使用纯 HTML 编写表单时,我应该始终拥有这些字段是否正确?如果我仍然用纯 HTML 编写它,还有其他方法吗?

【问题讨论】:

    标签: php validation laravel laravel-5 laravel-validation


    【解决方案1】:

    是的,没错。对于 PATCH(以及基本上所有非 GET 或 POST 动词),除了使用 _method 之外别无他法。

    这在文档的路由章节中有描述:Method Spoofing

    但是您可以禁用 CSRF 保护。我不是说你应该这样做,但如果你愿意,你可以通过从 app/Http/Kernel.php 的中间件数组中删除 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken 来禁用它

    这也在文档中:CSRF Protection

    【讨论】:

    • 谢谢!我想知道为什么这不包含在文档中?我的意思是,当开发人员不想使用 Form 帮助程序并决定使用纯 HTML 时,这些字段是必需的。或者它是写的,我只是错过了它?
    • 是的,它都在文档中。我已将链接添加到我的答案:)
    • 请注意,并非每个表单都需要这些字段。这取决于您是否启用了 CSRF 保护,以及您是否希望使用不同于 POST 或 GET 的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 2015-04-29
    • 2021-08-10
    • 2020-01-29
    • 2016-10-31
    • 2012-03-16
    相关资源
    最近更新 更多