【问题标题】:@csrf in laravel on include?laravel 中的 @csrf 是否包含在内?
【发布时间】: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 显示为纯文本,这不是我创建的任何其他表单的问题。任何正确方向的建议或链接将不胜感激。

干杯。

【问题讨论】:

    标签: laravel csrf


    【解决方案1】:

    试试这个:

    <form method="POST">
         {{ csrf_field() }}
          <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>
    

    这里是 csrf 令牌如何工作的链接以及所有内容: https://laravel.com/docs/7.x/csrf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      • 2015-12-25
      • 2020-07-04
      • 1970-01-01
      • 2015-03-03
      • 2014-03-04
      • 1970-01-01
      相关资源
      最近更新 更多