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

posted @ 2021-02-09 19:14  makalo  阅读(139)  评论(0编辑  收藏  举报