【发布时间】:2021-04-26 08:09:36
【问题描述】:
希望一切都好。我一直在研究一个 laravel 7.4 项目(计划在某个时候升级到 8),并且刚刚到了我想在视图中包含一个视图的地步,使用 @include 指令来包含一个登录框。为此,它按预期工作。但是,这些登录字段的@CSRF 现在显示为纯文本,我认为这意味着它不起作用。我已经对该网站进行了一些挖掘,但找不到这个特定问题。有些人 (Using CSRF in Laravel) 建议编写一些控制器代码,但 @csrf 令牌可以在我创建的其他形式中使用。我想知道每个网页是否只需要一次 csrf 并且它实际上正在工作,或者视图中的视图是否会引发这种情况。
作为参考,这里是 loginBox.blade.php(带有@csrf 的相当标准的 HTML 表单)
<form method="POST">
@csrf
<p>Username:
<input type="text" size="40" name="username">
</p>
<p>Password:
<input type="text" size="40" name="password">
</p>
<input type="submit" value="Log In">
</form>
在 foo.blade.php 中:
@include($_SERVER['DOCUMENT_ROOT']."/path/to/loginBox.blade.php");
再次,登录框显示正常,因此包含正确的位置,但@csrf 显示为纯文本,这不是我创建的任何其他表单的问题。任何正确方向的建议或链接将不胜感激。
干杯。
【问题讨论】: