当前位置: 首页 > 工具软件 > blade-icons > 使用案例 >

blade模板的使用

耿招
2023-12-01
  • blade模板简介
    在之前的laravel的了解过程中,知道怎么去使用laravel中的blade模板,同时也了解到在laravel中blade模板引擎功能非常强大,在这里不限制开发人员使用原声php代码,并且会把编译后的php原生代码生成缓存文件,方便在调试错误的时候,直接查看,当然这些呢仅仅是它的一部分,laravel官方在应用blade的模板中声明了很多函数,可以在blade模板中灵活的去应用.laravel的视图文件定义在resources/views 目录下.

  • 如何在方法中调用视图文件
    在laravel中调用视图文件,可以在路由中去调用,也可以在方法中去调用,但是不论在哪里使用都离不开一个函数view,laravel封装好了这个函数,可以飞铲方便的去调用模板,比如:
    在路由中调用一个add.blade.php模板

Route::get('add',function(){
    return view('add');//只需要调用名字,后缀不需要调用
});
  • 在方法中去调用
    也是同样的使用方法,如
public function add(){
    return view('add');
}

当然,我们如果做一个完整的项目的话,使用的模板肯定很多,就不能全部放到views目录下.需要自定义的文件夹,方便去查看,比如,views/article/add.blade.php

public function  add(){         
    return view('article.add');
}
  • 模板赋值

在方法中如何把数据传值到模板中,注意模板赋值要以一维数组的形式去传递如:

public function add(){
    $data = ['title'=>'laravel','content'=>'blade模板'];
    //直接在view函数第二个参数传递即可
    return view('add',['data'=>$data]);
}
  • 模板继承
    何为模板继承,比如在tp框架中,有模板包含.可以利益include函数把一些模板相同的头尾部给引用过来,这样可以提高一些开发效率,但是模板继承比模板包含更加的实用,比如两个模板,虽然中间的内容不同,但是头尾部和中间的模板布局相同,就直接可以把共同的布局给继承过来.如

  • 定义页面布局模板

//名字 为 parent.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>

如上所见,这个文件中包含了通常见到的 HTML 标签。不过,请注意一下 @section@yield 指令。@section 指令正像其名字所暗示的一样是用来定义一个视图片断(section)的;@yield 指令是用来展示某个指定 section 所代表的内容的。

上面这个布局呢,大家都可以明白,这个布局相当于一个公共的布局,那下面在定义一个页面模板作为继承使用,如

//名字  为son.blade.php与parent.blade.php 为同目录 
//首先继承模板
@extends('parent')

// 继承指定的title
@section('title', 'Blade')

@section('sidebar')
    @@parent

    <p>blade模板使用</p>
@endsection

@section('content')
    <p>This is my body content.</p>
@endsection

然后在方法中

public function test(){
    return view('son');
}

在方法中直接调用son.blade.php就行,如果调用成功是直接使用的是parent.blade.php的模板布局,这就是继承,主要注意点就是@yield 和@section 这两个函数的使用,极大的提高开发效率

  • 模板判断

在tp框架中,如果想要使用if判断必须使用原生php写法,相对来说的使用起来比较麻烦,那么如果在blade模板中使用,怎么使用呢??

//public function add(){
    $data = ['title'=>'laravel','content'=>'blade模板','score'=>mt_rand(40,90)];
    return view('add',['data'=>$data]);
}
//模板中展示直接 {{$title}}双大括号里传变量名字,模板会自动去解析
{{$score}}
@if($score >= 60)
及格
@else
不及格
@endif

主要的使用方法并没太大改变,但是注意,如果使用if判断
两个注意点
1,加@符号
2,有开始就有结束 @endif
- 模板循环
- foreach
- forelse

使用方法与if判断语句相同

//foreach 循环
@foreach($user  as $u)
{{$u}}
@endforeach


//forelse
@forelse($user as $u)
{{$u}}
@empty
暂无记录
@endforelse
 类似资料: