关于php:laravel在视图中使用php代码

1次阅读

共计 1167 个字符,预计需要花费 3 分钟才能阅读完成。

在 laravel 框架中, 在视图文件中应用 PHP 代码应用到了 Blade 模板引擎,Blade 是 laravel 提供的一个简略弱小的模板引擎。它不像其余风行的 PHP 模板引擎那样限度你在视图中应用原生的 PHP 代码,事实上它就是把 Blade 视图编译成原生的 PHP 代码并缓存起来。缓存会在 Blade 视图扭转时而扭转,这意味着 Blade 并没有给你的利用增加编译的累赘。Blade 视图文件应用 .blade.php 后缀,个别状况下都被存储在 resources/views 目录

留神:应用 blade 模板引擎时视图文件的后缀名必须是.blade.php,如果你的视图文件后缀名是.php 的话, 这样就无奈应用 blade 模板引擎

一:输入 PHP 变量

{{$name}}
{{date('Y-m-d H:i:s',time()) }}
{{in_array($name,$arr)?'true':'false' }}
{isset($name)?$name:'default' }}
{{$name or 'default'}}

二:显示未本义数据

默认的,Blade {{}} 申明会主动的应用 PHP 的 htmlentities 办法来防止 XSS 攻打。如果你不想你的数据被本义,你能够应用上面的语法

{!! $name !!}

留神:当你在利用中输入用户输出的数据时应该十分的审慎,你应该总是应用 {{}} 来本义内容中任意的 HTML 实体

三:if 语句

@if ($name == 'hello')
    hello
@elseif($name == 'yes')
    yes
@else
    who
@endif

为了不便,Blade 也提供了 @unless 指令:

@unless($name)
    {{$name}}
@endunless

@unless() 就能够了解为 if( !),就是 if not

四:循环语句

@foreach($student as $val)
  {{$val->name}}
@endforeach

@for ($i = 0; $i < 10; $i++)
  The current value is {{$i}}
@endfor

@forelse ($users as $user)
  <li>{{$user->name}}</li>
@empty
  <p>No users</p>
@endforelse

@while (true)
  <p>I'm looping forever.</p>
@endwhile

五:蕴含子视图

你能够应用 @include 指令来蕴含一个视图的内容,以后视图中的变量也会被共享给子视图

<div>
  @include('shared.errors')
  <form>
  <!-- Form Contents -->
  </form>
</div>

只管子视图会主动继承父视图中的所有数据变量,你也能够间接传递一个数组变量来增加额定的变量到子视图

@include('view.name', ['some' => 'data'])
正文完
 0