zoukankan      html  css  js  c++  java
  • 6

    视图

    视图(模板)文件默认存放在 /resources/views 目录中

    数据显示

    // 在控制器器中间数据传递给模板
    public function sendData () {
        return view('index.blade.php', ['title'=>'首页', 'content'=>'参数数据']);
    }
    
    // 在视图中显示数据, 使用小胡子语法
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title> {{title}} </title>
    </head>
    <body>
        <h1> {{content}}, 使用PHP代码,获取时间 {{date('Y-m-d')}} </h1>
    
        // 判断数据是否存在并输出
        {{ $name Or 'default' }} // 等价于: {{ isset($name) ? $name : 'Default' }}
    
        // 显示原生数据(原样显示)
        {!! $name !!} // 显示为 $name
    
    // 渲染 json
    <script>
        var json = @json($array);
    </script>
    </body>
    </html>
    

    判断视图是否处在

    use IlluminateSupportFacadesView;
    if (View::exists('admin.user.index')) {
        echo '存在';
    }
    

    前端框架冲突解决

    由于很多 JavaScript 框架也是用花括号来表示要显示在浏览器中的表达式, 如 Vue angular
    可以使用 @ 符来使 Blade 渲染引擎该表达式应该保持原生格式不作改动, 但是如果有多个{{}}语法
    的JavaScript变量,可以使用 @verbatim 来批量设置

    @{{ name }}
    
    @verbatim
    <div class="container">
        {{ name }}
        {{ age }}
        {{ sex }}
    </div>
    @endverbatim
    

    blade模板引擎

    blade模板引擎,必须是以 .blade.php 后缀的文件

    模板继承

    • @yield() 定义区块
    • @section() @show 定义区块
    • @exends() 继承其他模板
    • @section() @endsection/@stop 定义区块
    • {{ $slot }} 定义插槽
    • @component() @endcomponent 使用组件

    定义/继承 布局

    • 定义布局 main.blade.php
    {{-- 这是模板注释, 模板注释在浏览器中是看不到的 --}}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>@yilde('title', 'default title')</title>
    </head>
    <body>
        @section('content')
    
        @show
    </body>
    </html>
    
    • 继承布局
    @extends('main.blade.php')
    @section('title', 'test title content')
    @section('section')
        <p>中间内容部分...</p>
    @endsection
    

    组件/插槽 使用

    • 定义组件 alert.blade.php
    <div class="alert alert-danger">
        <div class="alert-title">{{ $title }}</div>
        <div class="alert-content">
            {{$content}}
        </div>
    </div>
    
    • 使用组件
    @component('alert')
        @slot('title')
            mysql错误: 
        @endslot
    
        @slot('content')
            sql语句执行异常..
        @endslot
    @endcomponent
    

    流程控制

    • 分支结构
    // 单分支
    @if(true)
        hello world
    @endif
    
    // 多分支
    @if(false)
        hello
    @elseif(true)
        world
    @else
        php
    @endif
    
    • 循环结构
    // for
    @for ($i = 0; $i < 10; $i++)
        {{ $i }}
    @endfor
    
    // foreach
    @foreach ($users as $user)
        <p>This is user {{ $user->id }}</p>
        <p>This is user {{ $user->name }}</p>
        <p>This is user {{ $user->age }}</p>
    @endforeach
    
    // 条件为 true 就 continue/break
    @foreach ($users as $user)
        @continue($user->type == 1)
        <li>{{ $user->name }}</li>
        @break($user->number == 5)
    @endforeach
    
    • 原生的PHP代码
    @php
        echo 'hello world';
    @endphp
    
    • 包含子视图
    @include('layout.main');
    @include('layout.main', ['name'=>'alex', 'age'=>20]);
    
  • 相关阅读:
    UVA 408 (13.07.28)
    linux概念之用户,组及权限
    Java实现 蓝桥杯 历届试题 网络寻路
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 九宫重排
    Java实现 蓝桥杯 历届试题 九宫重排
  • 原文地址:https://www.cnblogs.com/liaohui5/p/10581614.html
Copyright © 2011-2022 走看看