我正在关注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>
答案 0 :(得分:4)
据我所知,5.4中没有@csrf,您必须使用
{{ csrf_field() }}
相反,在laravel 5.6中可以使用@csrf
答案 1 :(得分:2)
答案 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