3.laravel基础(三)blade模板引擎

本文详细介绍了Blade模板系统的使用方法,包括模板继承、变量输出、流程控制等核心功能,并展示了如何利用Blade构建可复用的视图结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模板继承的使用

  • section -- 可以子模板扩展,也可以有内容
  • yield -- 想想成占位符,用子模板去实现它, 不可扩展
  • extends
  • parent

新建 layouts.blade.php 公共视图文件

<!doctype html>
<html lang="zh">
<head>    
<meta charset="UTF-8">    
<meta name="viewport"  content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">    
<meta http-equiv="X-UA-Compatible" content="ie=edge">    
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.min.css">    
<title>时间计算 -- @yield('title')</title>
</head>
<body>
    <div class="header">
      @section('header')
          头部
      @show
    </div>
    <div class="main">
        <div class="sidebar">
            @section('sidebar')
                侧边栏
            @show
        </div>
        <div class="content">
            @yield('content' , '主要内容区域');
        </div>
    </div>
    <div class="footer">
            @section('footer')
                底部
            @show
      </div>
</body>
</html>

在student目录下创建section1.blade.php 视图文件

     @extends('layouts'); // 继承哪个模板

     @section('header')
          @parent //继承header内原有的内容
          header //重写header位置模板
     @stop

    @section('sidebar')
        sidebar
    @stop

    @section('content')
        content
    @stop
      //渲染模板
      return view('student.section1'); // student目录下的section1模板,也可以用student/section1

基础语法及include的使用

  • 模板中输出变量
      @section('content')
          <p>{{ $name }}</p>
      @stop
  • 模板中调用PHP代码
      @section('content')
          <p>{{ time() }}</p>
          <p>{{ date('Y-m-d H:i:s , time()) }}</p>
          <p>{{ in_array($name, $arr) ? 'true' : 'false' }}</p>
          <p>{{ var_dump($arr) }}</p>
          <p>{{ isset($name) ? $name : 'default' }}</p>
          <p>{{ $name or 'default' }}</p>
      @stop
  • 原样输出
    @section('content')  
        <p>@{{ $name }}</p>  
    @stop
  • 模板中的注释
     @section('content')  
       {{-- 模板注释,在页面不会显示 --}}
      <!-- html注释,在模板中会显示 -->
    @stop
  • 引入子视图include的使用
      @include('student.common1')
      //向子视图传值
      @include('student.common1',['message'=>'我是错误信息'])

    流程控制

  • if

       @if ($name == 'sean')
          i'm sean
       @elseif ($name =='imooc')
          im imooc
       @else
            who i am 
       @endif
    
       @if (in_array($name, $arr))
            true
       @else
            false
       @endif
  • unless if的取反
      @unless ($name == 'sean')
          im sean
      @endunless
  • for
        @for ($i=0;$i<10;$i++)
            {{$i}}
        @endfor
  • foreach

        @foreach($students as $student)
            <p>{{ $student->name }}</p>
        @endforeach
  • forelse

    @forelse($students as $student)
      <p>{{ $student->name }}</p>
    @empty
      <p>null</p>
    @endforelse

模板中的URL

Route::any('url', ['as'=>'url', 'uses' => 'StudentController@urlTest'])

  • url() -- 通过路由名称生成URL
        <a href="{{ url('url') }}">url()</a>
  • action() --指定控制器和方法名生成URL
        <a href="{{ action('StudentController@urlTest') }}">action()</a>
  • route() -- 通过路由的别名生成URL
        <a href="{{ route('url') }}">action()</a>

转载于:https://www.cnblogs.com/hanweb/articles/6545651.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值