• Laravel 视图


    视图的用途是用来存放应用程序中 HTML 内容,并且能够将你的控制器层与展示层分开。

    我们在控制器中使用助手函数【view()】来加载视图模板。

    视图目录位置与命名

    img

    分配数据到模板

    view(模板文件名称,关联数组)
    
    view(模板文件名称,compact('变量名1','变量名2'))
    
    view(模板文件名称)->with(关联数组)
    

    view就指定视图模板

    img

    img

    模板

    img

    img

    模板中输出变量

    变量

    {{$变量名}}
    
    例
    
    {{$name}}
    

    img

    三元运算

    {{ $name or 'Default' }} 等价于<?php echo isset( $name)?$name:'default'?>
    

    img

    未转义输出

    如果变量信息里边如果有html标记信息,在输出的时候html标记被转化为符号实体了,而没有被浏览器解析掉,如果希望看到被浏览器解析后的内容,就需要设置两个感叹号。

    例如:

    $title = "<a href='http://www.baidu.com'>百度</a>";
    
    {!!$变量!!}
    

    img

    img

    原始形态输出

    由于很多 JavaScript 框架都使用花括号来表明所提供的表达式,所以你可以使用 @ 符号来告知 Blade 渲染引擎你需要保留这个表达式原始形态。

    <h1>Laravel</h1>
    Hello, @{{ $变量名 }}
    

    img

    使用函数

    可以在blade模板中直接使用php函数

    {{php函数名()}}
    

    img

    img

    if语句

    @if (count($records) === 1)
      我有一条记录!
    @elseif (count($records) > 1)
      有多条记录!
    @else
      我没有任何记录!
    @endif
    

    img

    循环

    @foreach ($users as $key=>$user)
    
    <p>此用户为 {{ $user->id }}</p>
    
    # 如果传过来的就是数组那么我们就用
    
    <p>{{ $user['id'] }}</p>
    
    @endforeach
    
    ---------------------------------------
    
    @forelse ($users as $key=>$user)
    
    <li>{{ $user->name }}</li>
    
    # 如果传过来的就是数组那么我们就用
    
    <p>{{ $user['id'] }}</p>
    @empty
        <p>没有用户</p>
    @endforelse
    
     
    

    注:foreach有循环变量,(loop,)loop->index 当前循环所迭代的索引,起始为 0。

    foreach和forelse 在确定有数据的时候,我们就用foreach

    在不确定是否有数据的时候,我们就用forelse

    img

    img

    效果

    img

    模板包含

    @include('public.header')
    
    # public 表示 views下面的public目录
    # header 表示在views/public/header.blade.php文件
    

    img

    img

    公共html片段

    img

    模板

    img

    img

    模版继承

    在一个项目中有许多模板文件,它们有一个特点:拥有共同的头部 和 脚部内容

    为了避免相同代码重复开发、维护 造成工作效率低下

    可以把共同的头部和脚部内容集中到一个布局文件中,之后各个具体模板文件去继承该布局文件而使用头部和脚步内容。这个过程成为模板继承。

    布局文件中相同的代码只维护一份,会大大提升项目开发效率

    img

    #表示继承resource/views/layouts/home.blade.php布局文件
    @extends('laoyouts.home') 
    
    #使用section标签替换布局模板中可变区域;
    @section('content')
    	给布局文件yield('content ')的区域进行填充的内容
    @endsection
    

    定义一个公共的模板

    img

    路由

    img

    控制器

    img

    模板

    img

    效果

    img

  • 相关阅读:
    数组指针的一个易错点
    jQuery on()方法
    php 前一天或后一天的日期
    用jQuery监听浏览器窗口的变化
    jquery获取json对象中的key小技巧
    JQuery操作元素的属性与样式及位置
    用JQuery操作元素的style属性
    如何删除jsPlumb连接
    jsPlumb.jsAPI阅读笔记(官方文档翻译)
    Jquery empty() remove() detach() 方法的区别
  • 原文地址:https://www.cnblogs.com/makalochen/p/14393963.html
Copyright © 2020-2023  润新知