zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    ubuntu下查看环境变量
    ubuntu关闭自动更新、打开 ubuntu 的 apport 崩溃检测报告功能
    Ubuntu 配置AP总结
    ubuntu 12.04亮度无法调节和无法保存屏幕亮度解决办法(echo_brightness)
    Ubuntu 13.04 双显卡安装NVIDIA GT 630M驱动
    Linux下添加硬盘,分区,格式化详解
    Eclipse启动分析
    “蚁族” 的生活方式画像
    Ubuntu下的防火墙
    Ubuntu下的杀毒
  • 原文地址:https://www.cnblogs.com/makalochen/p/14393963.html
Copyright © 2011-2022 走看看