【问题标题】:What does @ mean in Laravel Blade templates?Laravel Blade 模板中的 @ 是什么意思?
【发布时间】:2019-04-26 14:15:19
【问题描述】:

我在 Blade 模板中遇到过几次@ 符号。它在 laravel 刀片中有什么作用?示例如下所示。

@method('DELETE') @CRSF @foreach @endforeach 

【问题讨论】:

    标签: php laravel laravel-blade


    【解决方案1】:

    @在文档块中

    我知道你在问 Blade,但这不是问题,而且 cmets 是暂时的。此外,其他读者可能会在查找文档块 @s 时发现此内容。

    在类或函数之前以/** 开头的注释中,@ 表示对 Doxygen 或 PHPDoc 等文档工具的指令(我想,我没有使用过那个)。那里的常见指令包括@param@return@see@seealso@TODO@link。一个例子是

    /**
     * Function to do thing.
     * @param int $foo A variable used in the function for reasons.
     * @return A result of the thing done.
     * @seealso Bar::fubar()
     **/
    

    @在刀片中

    正如其他答案中提到的,@ 符号是刀片“命令”的前缀,称为指令。您具体询问的两个是 Laravel 内置的。您正在查看的可能是内置的,但您可以将指令添加到 make your own 以用于您经常执行/打印的操作。

    方法

    @method('DELETE') - RESTful 标准定义了请求方法 PATCH 和 DELETE,它们不是实际 HTTP(S) 标准的一部分。为了模拟这些不受支持的方法,在 Laravel 表单中的表单中添加了一个隐藏字段,以告诉 HTTP 内核请求方法是什么,以匹配用于路由目的的方法。所以@method('DELETE') 做了类似的事情(不是完全正确,但你明白了):

    echo '<input type="hidden" name="method" value="DELETE" />';
    

    CSRF

    @csrf 以前的 @csrf_field 是使用 CSRF 令牌获取隐藏输入的命令。也有一个可以获取令牌——@csrf_token——这对 ajax 请求很有用。 @csrf 做了类似的事情(但不完全是):

    echo '<input type="hidden" name="_token" value="' . {$csrf_token() . '" />';
    

    CSRF 令牌是“nonce”(数字仅使用一次),有助于防止 Cross Site Request Forgery

    storage/framework/views/ 的缓存/编译刀片中。

    【讨论】:

      【解决方案2】:

      这不是一个可以“翻译”成 PHP 的命令。 @ 只是一个符号,或者更多是刀片相关关键字的前缀。

      所以这个刀片的结果:

      @foreach($users as $user)
        <li>{{ $user->name }}</li>
      @endforeach
      

      将等于这个普通的 PHP:

      foreach($users as $user) {
        echo "<li>{$user->name}</li>";
      }
      

      【讨论】:

      • 谢谢。 @method('DELETE) 和 @crsf 的结果是什么
      • 您可以在刀片模板中轻松使用它,并且可以在浏览器中查看源代码以查看生成的html页面。和/或者您可以在文档中查找并阅读说明:laravel.com/docs/5.8/blade#forms
      【解决方案3】:

      这意味着您正在使用 Blade 指令。这些是 Laravel 模板引擎的功能。

      【讨论】:

        猜你喜欢
        • 2010-09-29
        • 2019-04-10
        • 2022-09-23
        • 1970-01-01
        • 2012-04-21
        • 1970-01-01
        • 2023-03-28
        • 2010-10-04
        • 2015-07-12
        相关资源
        最近更新 更多