问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

@if,so在php中是什么意思

发布网友 发布时间:2022-04-06 07:35

我来回答

2个回答

懂视网 时间:2022-04-06 11:56

Blade模板是:

Blade 是 Laravel 提供的模板引擎,它简单强大。不像其他的 PHP 模板引擎,Blade 允许在视图中使用原生 PHP 代码。

实际上,所有的 Blade 视图最终都会被编译成原生 PHP 代码,缓存在 storage/framework/views 文件夹中。

Laravel 使用的是这些编译后的缓存文件,而不是视图本身,所以,Blade 对于应用程序来说是零开销的。当你修改了视图文件,那么它会重新编译并缓存,以便使用。Blade 视图以 blade.php 为后缀名,一般存放于 resources/views 文件夹中。

模板继承:

1、定义布局文件

Blade 模板引擎的主要两个优点是 “模板继承” 和 “区块”。举一个简单的例子,一个项目里,几乎所有的页面都是一样的布局,这时候就可以把这个布局提炼出来,作为母版页,继承了这个母版页的的页面都有一样的布局效果,成为母版页的子页。母版页还叫布局文件,布局文件就是一个 Blade 视图:

<!-- Stored in resources/views/layouts/app.blade.php -->
<html>
 <head>
  <title>App Name - @yield('title')</title>
 </head>
 <body>
  @section('sidebar')
  This is the master sidebar.
  @show
  <div class="container">
  @yield('content')
  </div>
 <body>
</html>

布局文件里除了基础的 HTNL 标签,还使用了两个指令:@section 和 @yield 。@section定义区块,@yield 定义区块里的内容。

下面。来定义布局文件的子页。

2、继承布局文件

子页中,使用 Blade 的 @extends 指令指定 “继承” 的布局文件,使用 @section 指令为在布局文件中使用 @section 和 @yield 指令的地方注入内容:

<!-- Stored in resources/views/child.blade.php -->
@extends('layouts.app')
@section('title','Page Title')
@section('sidebar')
 <p> This is appended to the master sideebar</p>
@endsection
@section('content')
  <p>This ismy body content. </p>
@endsection

可以看到,在布局文件中使用 @yield 指令的地方,在子页中仍然使用 @section 注入内容;在布局文件中使用 @section 指令定义的一个好处是:在子页中使用 @section 注入时,可以使用 @parent 指令附加(而非重写)在布局文件中的内容,而在布局文件中使用 @yield 指令定义的地方是做不到的。@parent 指令会在视图渲染的时替换成布局文件里的内容。

注意,与在文件布局里定义的 sidebar 不同的是,子页里使用 @endsection 结束,而非 @show 。因为 @endsection 仅用来定义区块,而 @show 是用来定义、立马产出区块的。

从路由中直接返回视图文件,要用到全局辅助函数 helper :

Route::get('blade', function(){
 return view('child');
})

3、组件&插槽

组件和插槽提供了类似布局和区块的优点。而组件和插槽的心智模型更符合直觉。设想一下,在我们的项目中有一个可重复的 “弹框” 组件:

<!-- Stored resource/views/alter.blade.php -->
<div class="alter alter-danger">
 {{ $slot }}
</div>

{{ $slot }} 表示插入组建的内容。构建此组件,是使用 Blade 的@component指令:

@component('alter')
 <strong>Whoops!</strong> Something went wrong!
@endcomponent

在这个场景里,{{ $slot }} 变量的内容是:

<strong>Whoops! </strong> Something went wrong!

有时一个组件需要多个插槽。这时,只需要稍改组件代码,定义一个 “标题” 插槽,这个插槽称命名插槽。命名插槽是通过简单的 “打印” 匹配其名称的变量来显示内容的:

<!-- Stored resources/views/alter.blade.php-->
<div class="alter alter-danger">
  <div class="alter-title">{{ $title }}</div>
  {{ $slot }}
</div>

为名名插槽注入内容,使用 @slot 指令。所有不在 @slot 指令里的内容都会传递给组件里的 $slot 变量。

@compontent ('alter')
  @slot('title')
  Forbidden
  @endslot
 You are not allowed to access this resource!
@edcompontent~

4、为组建传递额外数据:

有时需要为组建件递额外数据。为此,可以为 @conponent 指令传递第二个数组参数。指定要传递的额外。据所有过去的额外数据作为变量,在组件模板里都可以取的:

@component
 <compontent('alter', ['foo' => 'bar');
  .....
@endCompontent

5、显示数据

向 Blade 视图传递数据,是通过将变量包裹在 [ ] 里实现的:

Route::get('greeting', function(){
  return view('welcome', [ 'name' => ''Samantha']);
})

下面就可以使用 name 变量显示内容了:

Hello! {{ $name }}

{{ }} 是 Blade 视图的打印语句,当然,打印语句里不限制只能打印变量内容,也可以使用 PHP 函数。实际上,打印语句这里可以使用任何 PHP 代码:

The current UNIX timestamp is {{ time() }}

6、显示非转移数据

默认,所有传递给 Blade {{ }} 语句的内容都会使用 htmlspecialchar 函数处理、将内容转义,避免 XSS 攻击。如果无需转义输出的内容,可以使用下面语法:

Hello! {{!! $name !!}}.

不过千万要小心,应该优先选择使用转义的 {{ }} 语法避免 XXS 攻击。因为,有时你很难避免用户有意的、无意的数据输入。

相关学习推荐:Laravel

热心网友 时间:2022-04-06 09:04

框架模板的语法

你用的是laravel框架么?

# views/index.blade.php
@if ( true == $tmp  )
    /* code */
@else
    /* code */
@endif

这是laravel框架的blade模板语言

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找几本一流的小说。类型' 完结什么的无所谓. 不要幼稚就好 沈阳职高学校排名 沈阳哪个公办职高和中专好 沈阳有哪些职高学校比较好? gpw一代和二代的区别有哪些 罗技gpw一代和二代区别介绍 第一代和第二代的区别 gpw二代和一代有什么区别 二代和一代区别详情分享 设张举措的意思设张举措的解释设张举措接龙 设张的成语设张的成语是什么 人字地砖铺法怎么找平方 请问phpstorm里如何新建一个blade模板 怎么让一个div在另一个div中垂直居中 如何让div垂直居中 如何让一个浮动的块元素垂直居中 简述内联元素如何垂直居中。 如何让div 元素中的div元素垂直居中 如何将一个div水平垂直居中 谁能把DOS下的命令做一个详细介绍呀?越详细越好 win10 10586是什么版本 win10正式版更新的KB3081424什么用? 求Windows 10Version 1507 KB4598231补丁(32&64位)网盘资源 win10KB4025342更新包是干什么的 首先,先看自己win10系统是什么版本 update fo windows 10forx64-based sestems(KB4480730)是什么 win10 10586.36更新了什么内容 win10 10586.36怎么样 win10的更新的kb4033631有什么用 win10 version 1703 与之前的有什么不同 2020-适用于Windows10 Version1809 的 03 累积更新,适合基于 x64 的系统 (KB4538461)? 安装My sql的时候出现这样的错误2503怎么解决 安装MSI程序都出现2502 2503错误 如何彻底解决 PHP blade模板的继承时,@extend(&#39;xx&#39;)怎么才能写进注释里面(直接写会报错)? Laravel 5.1 会有哪些变化 blade是什么意思啊 PHP lumen怎么输出uuid 英语里面BLADE 和SWORD 有什么区别 laravel 模板语法规则{{}}不识别怎么办 blade中文是什么意思 laravel框架摸版继承问题 interface Blade这个接口是什么意思 EMC 存储中X-Blade是什么 武道球魂的人物简介 骑马与砍杀戎马丹心武库以及兵器厂问题 Blade&Soul是什么意思 BLADE是什么品牌的轮胎? 如何实现块级元素的水平居中 CSS实现水平居中的几种方式 极客标签 如何让DIV高度固定 水平居中 最好写的详细点 如何让一个未知宽度的元素水平居中 如何让div里面的水平居中 如何让div中的内容水平居中,垂直居中