博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel5学生成绩管理系统-02-Blade模板
阅读量:2384 次
发布时间:2019-05-10

本文共 2037 字,大约阅读时间需要 6 分钟。

       Blade 是 Laravel 所提供的一个简单且强大的模板引擎。相较于其它知名的 PHP 模板引擎,Blade 并不会限制说你必须得在视图中使用 PHP 代码。所有 Blade 视图都会被编译缓存成普通的 PHP 代码,一直到它们被更改为止。这代表 Blade 基本不会对你的应用程序生成负担。Blade 视图文件使用 .blade.php 做为扩展名,通常保存于 resources/views 文件夹内。

# 定义页面布局

使用 Blade 模板的两个主要优点为 模板继承 与 区块。让我们先通过一个简单的例子来上手。首先,我们需要确认一下「主要的」页面布局。大多数的网页应用程序在不同页面都保持着相同的布局方式,这种布局在这单个 Blade 视图中可以很方便的定义:

我们先构建一个基础页面模版,因为后面的每个页面都是需要继承它的.创建 master.blade.php文件.

      
    
    
    
    
 @yield('title')     
    
        
            
                
Toggle Navigation                
                
                
                        @if(Auth::guest()) 
学生成绩管理            @else                @if (Auth::user()->is_admin) 
学生成绩管理                @else 
学生成绩管理                @endif            @endif         
            
                
  • Power by laravel5
  •                         
                    @if (Auth::guest())                @else 
                            
    { { Auth::user()->name }} 
                            
                                
  • 退出
  •                                                             @endif             
    @yield('content') 

    如你所见,这个文件包含了传统的 HTML 语法。不过,请注意 @section 与 @yield 命令。正如其名,@section 命令定义一个内容区块,而 @yield 命令被用来 “显示指定区块” 的内容。

    @yield()[可以简单地理解为区域】 和 @extends() 通常会结合者使用,实现我们通常所说的layouts布局。layouts布局就是在web开发的过程中,我们将一些公用的部分如 header , footer等直接放在一个视图文件中,然后在使用的使用直接继承 (使用@extends) 就可以了,比如我们在 resources/views/ 文件夹之下创建一个 master.blade.php :

    现在,我们已经定义好了这个应用程序的布局,让我们接着来定义一个继承此布局的子页面。

    #继承页面布局

    当正在定义子页面时,你可以使用 Blade 的 @extends 命令指定子页面应该「继承」哪一个布局。当视图 @extends Blade 的布局之后,即可使用 @section 命令将内容注入于布局的区块中。切记,如上述例子所见,这些区块的内容都会使用@yield 显示在布局中:

       welcome欢迎首页面继承主页面

          
    @extends('master')    {
    {-- 继承master模版,注意:此处米有结束符分号 --}}@section('title')   {
    {-- 对应@yield('title') --}}  {
    {-- 也可以这样写:@section('title', '页面标题') --}}    学生成绩管理系统-测试-@stop@section('content')    {
    {-- 对应@yield('content') --}}    
            
                

    {
    { Inspiring::quote() }}

                

    同学们登录后先修改相关资料

                

    查询分数,有疑问咨询管理员

                

    点击登录

                @stop

    @section 有两种写法:

    第一种当内容比较短时可以直接写,结尾不用@stop结束符

          @section('title', '页面标题')

    第二种当显示内容比较多时,可以分开来写,即下面这种:

          @section('content')    // 这部分替换app里的代码,有开始就会有结束,所以一个section 对应一个stop 

    生如夏花之绚烂

     

    死如秋叶之静美

    @stop

    浏览器端显示:

    093556_S0g1_2557944.png

    转载于:https://my.oschina.net/corwien/blog/665151

    你可能感兴趣的文章
    magento性能优化系列二:db篇
    查看>>
    Discuz!$_G变量的使用方法
    查看>>
    magento memcache缓存配置
    查看>>
    PHP json_encode中文乱码解决方法
    查看>>
    mysql服务启动、关闭
    查看>>
    php获取中文字符串的首字符拼音字母
    查看>>
    php curl通过代理获取数据
    查看>>
    6 个 Linux性能监控命令行工具
    查看>>
    mysql 编码字符集配置
    查看>>
    php查看opcode编码的扩展 opdumper
    查看>>
    php转换html格式为文本格式
    查看>>
    mysql-proxy主从服务架构下读写分离和负载均衡实现及原理
    查看>>
    Nginx location 和 rewrite retry
    查看>>
    基于nginx的FastCGI的缓存配置
    查看>>
    Nginx模块fastcgi_cache的几个注意点
    查看>>
    PHP使用curl伪造IP地址和header信息
    查看>>
    代理服务器中的HTTP代理与SOCKS代理有什么区别?
    查看>>
    零基础Python学习路线,小白的进阶之路!
    查看>>
    CSS的23个垂直居中技巧,你都学会了吗?
    查看>>
    黑客攻击用的最短代码大揭秘,颠覆你的世界观!
    查看>>