博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6 - laravel 基础 - 视图与模板引擎
阅读量:6547 次
发布时间:2019-06-24

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

视图

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

数据显示

// 在控制器器中间数据传递给模板public function sendData () {    return view('index.blade.php', ['title'=>'首页', 'content'=>'参数数据']);}
// 在视图中显示数据, 使用小胡子语法    
{<div></div> {title}}

{
{content}}, 使用PHP代码,获取时间 {
{date('Y-m-d')}}

// 判断数据是否存在并输出 {
{ $name Or 'default' }} // 等价于: {
{ isset($name) ? $name : 'Default' }} // 显示原生数据(原样显示) {!! $name !!} // 显示为 $name// 渲染 json

判断视图是否处在

use Illuminate\Support\Facades\View;if (View::exists('admin.user.index')) {    echo '存在';}

前端框架冲突解决

由于很多 JavaScript 框架也是用花括号来表示要显示在浏览器中的表达式, 如 Vue angular

可以使用 @ 符来使 Blade 渲染引擎该表达式应该保持原生格式不作改动, 但是如果有多个{
{}}
语法
的JavaScript变量,可以使用 @verbatim 来批量设置

@{
{ name }}
@verbatim
{
{ name }} {
{ age }} {
{ sex }}
@endverbatim

blade模板引擎

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

模板继承

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

定义/继承 布局

  • 定义布局 main.blade.php
{
{-- 这是模板注释, 模板注释在浏览器中是看不到的 --}}
@yilde('title', 'default title') @section('content') @show
  • 继承布局
@extends('main.blade.php')@section('title', 'test title content')@section('section')    

中间内容部分...

@endsection

组件/插槽 使用

  • 定义组件 alert.blade.php
{
{ $title }}
{
{$content}}
  • 使用组件
@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)

This is user {

{ $user->id }}

This is user {

{ $user->name }}

This is user {

{ $user->age }}

@endforeach// 条件为 true 就 continue/break@foreach ($users as $user) @continue($user->type == 1)
  • {
    { $user->name }}
  • @break($user->number == 5)@endforeach
    • 原生的PHP代码
    @php    echo 'hello world';@endphp
    • 包含子视图
    @include('layout.main');@include('layout.main', ['name'=>'alex', 'age'=>20]);

    转载于:https://www.cnblogs.com/liaohui5/p/10581614.html

    你可能感兴趣的文章
    Cannot load from mysql.proc
    查看>>
    Apache Thrift 教程
    查看>>
    Python Epoll
    查看>>
    AS3歌词同步详解
    查看>>
    单例模式
    查看>>
    Linux环境NetBeans字体通用抗据齿解决方法
    查看>>
    Eclipse的花括号(brace)的输入偏好问题
    查看>>
    工作记录
    查看>>
    HDOJ 1698
    查看>>
    linux里安装redis以及redis的安全设置
    查看>>
    Mysql Procudure
    查看>>
    作业第六次
    查看>>
    构建之法 第一章 概论
    查看>>
    Hadoop编译安装
    查看>>
    汇编字符串拷贝
    查看>>
    Lambda的前世今生
    查看>>
    TCP/IP模型简介和/etc/hosts文件说明
    查看>>
    UIButton常用属性
    查看>>
    主键自增归0
    查看>>
    mysql之 [ERROR] InnoDB: Unable to lock ./ibdata1, error: 11
    查看>>