1.视图写在哪里
注意:
1.视图可以分目录管理,也有必要分目录管理
2.视图的后缀在larave中一般都是“blade.php”
3.视图的创建无法通过artisan来实现
2.视图文件的命名与渲染
(1)文件名习惯小写(建议小写)
(2)文件名的后缀是“blade.php”(因为larave里面有一些模板引擎就是使用blade,可以直接使用标签语法{{KaTeX parse error: Expected 'EOF', got '}' at position 6: title}̲},也可以使用原生的php语法…title}}语法显示数据,只能使用原生语法<?php echo $title ?>显示数据
两个视图文件同时存在,则。blade.php后缀的优先显示
案例:编写一路由地址,调用Test控制器的test3方法,展示视图test3文件(创建2个,一个以.blade.php结尾,另一个.php结尾)【验证优先级】
创建对应路由:
/test3
编写控制器方法:
return view(“视图文件的名称”) 不用加后缀
视图可以分目录管理,例如需要展示home/test/test2视图,则可以写成:
return view(“home/test/test2”)当然也支持写法:view(“home test test2”)
展示方法:
新建两个视图(一个以.blade.php结尾,一个以.php结尾)最终展示的是.blade.php
3.变量分配(assign)与展示
语法:
1.view(模板文件名称、数组)数组就是需要分配的变量集合,数组1是一个简直数组,其键与变量名尽量一致
2.view(模板文件名称)->with(数组)
3.view(模板文件名称)->with(名称、值) ->with(名称、值)…
使用view()fangshi1渲染一个视图后,在.bade.php的视图文件中,模板中输出变量使用“{{$变量名}}”(变量名就是分配过来数组的键)
案例:需要将控制器方法中的时间,(年月日时分秒)数据传递到视图中去,并且输出test3
4.扩展:compact函数使用(传参)
Compact函数,是php内置函数跟larave框架没有关系。作用主要是用语言打包数组的。
语法:compact(‘变量名1’,‘变量名2’,…);
例如:
结果是一样的:
5.循环与分支语法标签【重点】
在视图里面便利数据【重点】
在larave中模板中循环输出数据,则需要遵循语法:
与原始的PHP循环相比:
a.有大括号,则需要去除大括号(不管多少个),然后在当前行前面写上“@”
b.在结束的@后面添加结束标签“endXxxx”
案例:使用循环标签的语法,在视图中输出数据
新建路由:/test4
循环标签
需要注意的是,如果本身data是结果集的话,则循环到的value一般会是一个对象(此时最好不要使用"[]“访问数组的形式进行属性访问,而应该使用” -> "形式)。
//在视图里面可以执行if判断【重点】
if语法在模板引擎中的写法:
案例:要求在php代码中(控制器的方法)动态的输出今天的星期数字(1-7),将数字传递给视图,显示出今天是星期几,如假设传递得数字是7,则页面中要输出‘星期天’【将数字转化为汉字】
a.先在控制器中方法中输出当前的星期数字
b.需要在视图中获取数字,并且通过if判断输出今天的星期汉字
效果:
不管是循环还是判断标签,都需要有闭合的“endxxx标记”
6.模板继承/包含【理解】
继承不仅仅在php类中存在,在视图中同样存在。一般是用于做有公共部分的页面。
案例:编写父级页面(父类),在编写一个子页面(子类) (相当于php的两个类)
编写父级页面:
语法:@yield(‘名字’) 在父级页面中的占位,也就是空出可变区域
在父页面中,头尾是固定的,中间是可变的区域,由于内容不知道是什么,所以通过yield占位,等待子页面去补充(等待子页面重写yield区域)
再去创建子页面和其路由
/test5
创建视图child(只展示可变区域)
视图正文内容:
继承语法:
子模版中按一下语法书写:
@entends(‘需要继承的模板文件名’)其名称要是完整的路径,类似view视图路径
通过section标签绑定区块/部件到父级页面,区块名称就是腹肌页面yield标签的参数名
@section(‘区块名称’)
代码
@endsection
显示效果:
模板包含:
语法:@include(‘模板文件名’) 文件名不含后缀,语法类似view方法参数
注意:在引入模板文件的时候一般引入的是纯静态的模板,当引入的模板中有变量的话非常容易出错,一般不推荐