Laravel框架中的视图操作

1、视图写哪里?

在这里插入图片描述

2、视图文件的命名与渲染

(1)文件名习惯小写(建议小写)
(2)文件名的后缀是 .blade.php(因为laravel里面有一套模板引擎就是使用blade,可以直接使用标签语法{{ $title }}, 也可以使用原生的php语法显示数据。)
(3)需要注意的是也可以使用.php结尾,但是这样的话就不能使用laravel提供的标签{{ $title }}语法显示数据,只能使用原生语法 <?php echo $title;?> 显示数据
两个视图文件同时存在,则.blade.php后缀的优先显示。

3、变量分配与展示

语法:
①view(模板文件名称,数组)
数组就是需要分配的变量集合,数组是一个键值数组,其键与变量名尽量一致
②view(模板文件名称)->with(数组)
③view(模板文件名称)->with(名称,值)->with(名称,值)

使用view()方式渲染一个视图后,在.blade.php的视图文件中,模板中输出变量使用“{{ $变量名 }} ”(变量名就是分配过来数组的键)

4、扩展:compact函数使用(传参)

Compact函数,是php内置函数跟laravel框架没有关系。作用主要是用于打包数组的。

语法:compact(‘变量名1’,’变量名2’,…);

5、模板中直接使用函数

回顾:在smarty模版引擎中存在一个特殊的符号“|”,名称称之为变量修饰符。作用就是在视图中解释变量(使用函数去处理变量)。
在laravel中。视图调用函数其语法基本与js、php的语法一致,只不过要求左右包含大括号:
语法:{{函数名(参数1,参数2…)}}
说明:函数名可以是php内置的,也可以是laravel框架中定义的。

案例:在数据库中一般存储时间都是以时间戳去存储的,但是在页面上展示的时候不适合使用时间戳了。需要在展示的时候再对其进行格式化处理,如需要在视图中进行对其格式化则怎么写?(100%)

分析:在php中怎么格式化时间戳?使用date函数

语法:date(格式,时间戳)

{{date('Y-m-d H:i:s',$time)}}

如果需要使用更多的函数,则需要遵循函数的语法格式即可。

6、循环与分支语法标签【重点】

//在视图里面遍历数据【重点】

在laravel中模版中循环输出数据,则需要遵循语法:

//php中写法
foreach$data as $key =>$value{
 //循环体
}
//在laravel中视图的写法
@foreach $data as $key =>$value
 //循环体
@endforeach

//在视图里面可以执行if判断【重点】

If语法在模版引擎中的写法:

//在php中的if语法
if(条件表达式1){
//执行语句1
}
elseif(条件表达式2){
//执行语句2
{
elseif(条件表达式3){
//执行语句3
}
...
else{
//默认执行语句
}
//在laravel视图中的if语法
@if(条件表达式1)
执行语句1
@elseif(条件表达式2)
执行语句2
@elseif(条件表达式3)
执行语句3
...
@else
默认执行语句
@endif()

7、模版继承/包含【理解】

在这里插入图片描述

继承不仅仅在php类中存在,在视图中同样存在。一般是用于做有公共部分的页面。

案例:编写父级页面,再编写一个子页面(相当于php中的两个类)
编写父级页面:

<h1>我是头部</h1>
//可变区域
@yield('mainbody')
<h1>我是尾部</h1>

语法:@yield(‘名字’) 在父级页面中的占位

编写子页面:(可以用之前的模版直接集成刚才父级页面,例如使用test4页面),编写的子页面不需要再去写头和尾,因为首尾父页面已经有了:

展示子页面;

@extends('home.test.parent')
//绑定yield标签的名字
@section('mainbody')
<div>
我是可变区域
</div>
@ensection

继承语法:
子模版中按以下语法书写:

@extends(‘需要继承的模版文件名’) 其名称要是完整的路径 通过section标签绑定区块/部件到父级页面,区块名称就是父级页面yield标签的参数名。 @section(区块名称) 代码 @endsction

模版包含:

语法:@include(模版文件名) 文件名不含后缀,语法类似view方法参数

@include('home.test.paerent')

8、外部静态文件引入方式(了解)

在写页面肯定会引入相关的外部文件(js、css、image),则会涉及到路径的问题。
以下面的这个app.css为例,看如何去引入该css文件:

以往的引入方式:

<link rel="stylesheet" type="text/css" href="/css/app.css"/>

在laravel中系统封装了一个方法asset:

<link rel="stylesheet" type="text/css" href="{{asset('css')}}/app.css"/>

Asset方法中的参数可以是多级目录也可以是单级目录。

猜你喜欢

转载自blog.csdn.net/qq_45062472/article/details/108337109