【问题标题】:Accessing php variables in blade file访问刀片文件中的 php 变量
【发布时间】:2021-12-23 16:10:13
【问题描述】:

我了解可以使用以下语法访问传递给刀片文件的 PHP 变量。

我对此有几个问题

  1. {{ }} 做了什么让我可以访问变量?
  2. 为什么当我从内部引用变量时 元素和作为文本我必须包含 '' 前者而不是 后者
  3. 在javascript中访问变量时{!!}是什么意思
  4. 假设 $user 是一个对象,为什么我不能通过 {{$user.id}} 访问它 我必须使用括号表示法吗?

感谢各位大侠的解惑!

HTML部分

如果在 HTML 元素内访问

<div id='{{$user['id]}}'>

如果作为 HTML 元素的文本被访问

<p> {{$user['id']}} </p>

在 Javascript 中

{ !! $user['id'] !! }}

【问题讨论】:

  • 刀片模板是一种标记语言,可以编译并转换为纯 PHP。当刀片引擎看到{{ $someValue }} 时,它会将其转换为纯PHP 版本中的echo $someValue
  • 您的$user 对象被转换为数组或实现了 ArrayAccess,因此您可以使用数组语法访问它的属性。 php.net/manual/en/class.arrayaccess.php
  • “{{ }} 做什么” - 这不是每个 Blade 模板教程的一部分吗?另外,由于您没有共享任何 JS 代码,这与 Javascript 有什么关系?请记住,Blade 本身并不了解 Javascript 或 HTML,它只是一个可以产生各种输出的纯模板引擎。此输出需要是正确的 HTML 或 JS 代码才能被您的浏览器正确解释

标签: javascript php html laravel


【解决方案1】:
  1. 语法 {{}} 在刀片中被翻译为 echo。
  2. 我不是很明白,但我猜你的意思是在变量中添加一个连接的文本字符串,不是。这适用于此,尽管将其放在 {{}} 中是不合适的,因为在刀片中您可以将其用作普通文本字符串。这适用于此,尽管将其放在 {{}} 内是不合适的,因为在刀片内您可以将其用作普通文本字符串。
  3. {!!! !!} 你让刀片将变量的 html 元素解释为 html,这是什么意思?如果在变量 $x 中有一个 strong 标签,例如 {!!! !!}你会得到同样强大的文字。
  4. user.id 语法适用于 javascript 对象。对于 Laravel,它将是 {{ $user->id }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-19
    • 2016-09-23
    • 2018-09-30
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2018-05-25
    • 2022-11-02
    相关资源
    最近更新 更多