@csrf在Laravel 5.4中不起作用

时间:2018-06-22 11:31:36

标签: php laravel csrf csrf-protection

我正在关注Laravel上的本教程,并且我注意到我不能使用@csrf命令,但是其他人可以有效地使用它。但是,我可以将{{csrf_field()}}用于csrf令牌。我想知道原因。谢谢。

这是我使用@csrf命令的屏幕截图:here

这是我的index.blade.php

       <form action="{{ route('contact.store') }}" method="post">

            @csrf

            <div class="col-md-6 mb-3">
                <label for="username">Username:</label>
                <input class="form-control" type="text" name="name" id="username" placeholder="Username | Email | Phone Number" required>
                <div class="invalid-feedback">
                    Please provide a username
                </div>
            </div>

            <div class="col-md-6 mb-3">
                <label for="password">Password:</label>
                <input class="form-control" type="password" name="name" id="password" placeholder="" required>
                <div class="invalid-feedback">
                    Please provide a password
                </div>
            </div>

            <div class="col-md-6 mb-3">
                <input type="submit">
            </div>
        </form>

4 个答案:

答案 0 :(得分:4)

据我所知,5.4中没有@csrf,您必须使用

{{ csrf_field() }}

相反,在laravel 5.6中可以使用@csrf

答案 1 :(得分:2)

@csrf参数以5.6出现在刀片服务器上

您需要使用csrf_field()方法而不是@csrf

有关更多信息,请查看the docs

答案 2 :(得分:1)

仅可使用Laravel 5.4 参考此链接 https://laravel.com/docs/5.4/csrf

{{ csrf_field() }}

Laravel 5.6可用 参考此链接 https://laravel.com/docs/5.6/csrf

@csrf

答案 3 :(得分:0)

如果您曾经使用过laravel框架版本 5.6、5.5 或低于5.5版本 您应该编写 {{ csrf_field() }} ,但是如果您曾经使用laravel框架版本 5.7, 5.8 或大于5.7版本,则应该编写 {{1 }}

Laravel 5.5、5.6 =>编写{{csrf_field()}}

Laravel 5.7或大于5.7 =>写@csrf