四、视图
模板配置
1、视图的配置文件:system/config/views.php
2、使用:return views("view.php")方法来返回指定的视图文件。
3、此方法不传递参数时的查找方法:当前方法所在的模块中的views目录中,查找当前控制器名目录中,查找当前动作名的视图文件。即当前的方法为:home/index/action;则会查找的视图文件为:home/views/index/action.php
4、当传递视图文件名参数时,系统会从系统根目录进行查找。所以最好跟上一定的路径:return views("/temp/show.php");;这样系统会查找指定路径下的指定文件。
数据分配
1、数据分配可以将例如从数据库中读取的数据分配到加载进来的view文件视图之中。(这些views中的文件,被加载进来后是否能使用系统中的对象和数据的。)。
2、数据分配方法:
单一数据分配:view::with(key,value)
数组数据分配:view::with([key1=>value1,key2=>value2])
3、视图中数据接收方式:{{$key}}
分配:view::with([key1=>value1,key2=>value2])
接收:{{$key1}} {{$key2}}
4、显示模板:return view(); return view(path)
5、分配数据时同时显示模板
return view::whith(key,value)->make();
return view::make()->with(key,value)
6、在视图模板中使用{{var}}来读取同名的变量的值,同时也可以用来执行任意的php代码。
7、忽略解析而直接输出:在两个大括号前加上@即可。@{{var}}这样会被直接输出。
实例:
View::with("name","zxy");传送 {{$name}}接收
要注意:View::with() V是大写的,是使用类名来调用其静态方法,类名都是大写的!
View::with("name","zxy");
View::with(["key1"=>"value1","key2"=>"value2"]);
//return View::with(["key3"=>"value3","key4"=>"value4"])->make();
return View::make()->with(["key3"=>"value3","key4"=>"value4"]);
//return view();
都尝试了一次,都正常。
请求响应
1、请求响应:当页面执行相关操作时反馈给用户的一些消息、警告、提示等
2、配置文件位置:system/config/view.php
3、种类:消息、确认
消息:message( $提示内容, $跳转方式', $消息类型, $显示时间 )
提示内容:由用户来自定义
跳转方式:1:back或为空(返回上一页) 2:refresh(刷新当前页) 3:具体Url
消息类型:success(成功),error(失败),warning(警告),info(提示)
显示时间:单位秒,此提示信息显示的时间长短
确认:confirm('确定删除吗?',u('ok'),u('cancel'));
确定删除吗:提示信息
u('ok'):点击确认时所要跳转的页面
,u('cancel'):点击取消时所要执行跳转的页面。
message( "这是提示信息!", $redirect = 'back', $type = 'success', $timeout = 30 );
confirm('确定删除吗?',u('ok'),u('cancel'));
测试正常
模板继承
模板继承:创建一个父模板文件,在父文件中用<blade name="content"/><widget name="header">这样标签定义一些区域。再创建子文件继承父文件<extend file='master'/>,并且在子文件中使用block标签定义视图内容,block替换“父级模板"中相同name属性的blade标签,parent标签用于将父级模板 widget标签内容显示到此处,parent标签支持向父级传递内容如上例中的title,父级中使用{{title}}方式调用。
父文件 子文件
<extend file='master'/> <blade name="content"/> <=填充 <block name="content">内容</block>
1、父文件中:
blade标签是让子文件来填充
widget标签是去填充子文件
2、子文件中
block标签是去填充父文件的blade标签
parent是让父文件的widget标签来填充
3、总的来说有2点:
父文件填充子文件区域:widget->parent
子文件填充父文件区域:block->blade