CI4框架应用五 - 加载视图
这节我们来看一下CI4框架中视图的加载, CI4中提供了几种方式加载视图。
1. 利用CI4框架提供的全局函数view(‘模板名’),如果需要传参数可以在第二个参数传一个数组
我们先修改一下之前定义的方法,改用视图模板的方式来输出内容
<?php namespace App\Controllers; class Home extends BaseController
{
public function welcome()
{
return view('welcome');
}
}
然后我们在Views目录下新建模板文件welcome.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>视图加载</title>
</head>
<body>
<h3>视图加载</h3>
<p>这是一个通过视图加载的页面!</p>
</body>
</html>
我们来看一下页面效果

我们再来给页面传递2个参数
<?php namespace App\Controllers; class Home extends BaseController
{
public function welcome()
{
$data = [
'author' => '小白加小白',
'created_time' => date('Y-m-d H:i:s')
]; return view('welcome', $data);
}
}
再修改一下视图模板
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>视图加载</title>
</head> <body>
<h3>视图加载</h3>
<p>作者:<?= $author; ?></p>
<p>时间:<?= $created_time; ?></p>
<p>这是一个通过视图加载的页面!</p>
</body> </html>
再看一下页面效果

2. 我们再看一下其他的视图加载方式
<?php namespace App\Controllers; class Home extends BaseController
{
public function welcome()
{
$view = \Config\Services::renderer(); return $view->setVar('author', '小白加小白')
->setVar('created_time', date('Y-m-d H:i:s'))
->render('welcome');
}
}
3. 页面展示效果和第一种方法一致,我们再看下另一种加载方法
<?php namespace App\Controllers; class Home extends BaseController
{
public function welcome()
{
$view = new \CodeIgniter\View\View(new \Config\View()); $data = ['author' => '小白加小白', 'created_time' => date('Y-m-d H:i:s')]; return $view->setData($data)->render('welcome');
}
}
这样也可以得到同样的页面内容。
总结:
第一种方法是框架提供的全局函数,简单易用
第二种和第三种方法先得到一个渲染器,然后去渲染一个模板,通过setVar和setData的方式传递参数
注意:我们是通过return返回渲染后的模板内容的,我们也可以通过echo的方式输出模板内容,那么我们是否可以return的方式返回一个数字呢?
<?php namespace App\Controllers; class Home extends BaseController
{
public function welcome()
{
return 1;
}
}
我们看到页面是没有输出内容的

我们如果返回一个字符串的数字呢
<?php namespace App\Controllers; class Home extends BaseController
{
public function welcome()
{
return "1";
}
}
再刷新一下页面

所以,在控制器中只有return字符串类型的数据才能在页面展示
CI4框架应用五 - 加载视图的更多相关文章
- Maven SSH三大框架整合的加载流程
<Maven精品教程视频\day02视频\03ssh配置文件加载过程.avi;> 此课程中讲 SSH三大框架整合的加载流程,还可以,初步接触的朋友可以听一听. < \day02视频\ ...
- 环形动画加载视图AnimatedCircleLoadingView
环形动画加载视图AnimatedCircleLoadingView AnimatedCircleLoadingView是基于Android手表动画android-watch-loading-anima ...
- python web开发之flask框架学习(2) 加载模版
上次学习了flask的helloword项目的创建,这次来学习flask项目的模版加载: 第一步:创建一个flask项目 第二步:在项目目录的templates文件夹下创建一个html文件 第三步: ...
- cesium 学习(五) 加载场景模型
cesium 学习(五) 加载场景模型 一.前言 现在开始实际的看看效果,目前我所接触到基本上都是使用Cesium加载模型这个内容,以及在模型上进行操作.So,现在进行一些加载模型的学习,数据的话可以 ...
- SwiftUI - 一步一步教你使用UIViewRepresentable封装网络加载视图(UIActivityIndicatorView)
概述 网络加载视图,在一个联网的APP上可以讲得上是必须要的组件,在SwiftUI中它并没有提供如 UIKit 中的UIActivityIndicatorView直接提供给我们调用,但是我们可以通过 ...
- 十五、CI框架之自动加载数据库
一.在config的autoload.php文件中,如果写入以下代码,那么在控制器中无需再次加载数据库了,相当于全局自动加载数据库了 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码 ...
- Android项目框架之图片加载框架的选择
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 从Android爆发以后,自定义的控件如EditTextWithDelete.ActionBar.P ...
- Android Developers:按需求加载视图
有时候你的布局可能需要较少使用的复杂视图.无论它们是项目详情,进度指示器,或者处理的信息,你能通过在它们被需要的时候加载的方式,来减少内存消耗和加快显示. 定义一个ViewStub ————————— ...
- Crystal框架配置参数加载机制详解?
前言 定义 配置参数定义的形式 配置参数文件定义在哪里? 配置参数加载的优先级 如何使用配置参数? 最佳实践 Jar项目中如何定义配置参数? War项目中如何定义或重载Jar包中的配置参数? 开发人员 ...
随机推荐
- (转自MDN)CSS基础一定要看的包含块(containing block)
之前在写<个人常用的水平居中方法>这篇文章的时候,百分比问题涉及到了包含块(containing block)这个概念. 今天刷面试题的时候,又看到了containing block这个词 ...
- Python之爬虫(十六) Scrapy框架中选择器的用法
Scrapy提取数据有自己的一套机制,被称作选择器(selectors),通过特定的Xpath或者CSS表达式来选择HTML文件的某个部分Xpath是专门在XML文件中选择节点的语言,也可以用在HTM ...
- 网络编程-UDP、TCP
总结
- 开源|如何开发一个高性能的redis cluster proxy?
文|曹佳俊 网易智慧企业资深服务端开发工程师 背 景 redis cluster简介 Redis cluster是redis官方提供集群方案,设计上采用非中心化的架构,节点之间通过gossip协 ...
- [Qt插件]-01Qt插件&&提升部件(自定义控件)
本篇的文档为:How to Create Qt Plugins https://doc.qt.io/qt-5/plugins-howto.html 前言 Qt插件(Qt Plugin)就是一个共享 ...
- Python Ethical Hacking - BACKDOORS(6)
File Upload: A file is a series of characters. Uploading a file is the opposite of downloading a fil ...
- Python Ethical Hacking - BACKDOORS(1)
REVERSE_BACKDOOR Access file system. Execute system commands. Download files. Upload files. Persiste ...
- mybatis逆向工程生成java代码和xml配置
mybatis官方提供了一个逆向工程包,可以针对数据库表自动生成mybatis执行所需要的Pojo.Mapper xml文件.Mapper 接口文件. mybatis-generator有很多种用法: ...
- 关联吸纳的remote首次push报错rejected
F:\abb-iot\DmsAPI\DmsAPI (master -> origin) λ git push --set-upstream github master To github.com ...
- 遇到的spring问题,或许需要下载新的java jdk
org.springframework.context.support.AbstractApplicationContext