php模板如何使用,ThinkPHP如何使用模板

到目前为止,我们只是使用了控制器和模型,还没有接触视图,下面来给上面的应用添加视图模板。

首先我们修改下 Action 的 index 操作方法,添加模板赋值和渲染模板操作。

PHP代码

classIndexActionextendsAction{

publicfunctionindex(){

$Blog=newBlogModel();

$list=$Blog->findAll();

$this->assign('title','ThinkPHP 示例');

$this->assign('list',$list);

$this->display();

}

}

现在我们在浏览器里面输入 http://localhost/myApp/

后出现了下面的页面

a4c26d1e5885305701be709a3d33442f.png

出现上面的错误,可是觉得莫名其妙,因为没有说明任何导致错误的原因。

其实,这个提示信息是 ThinkPHP 在部署模式下面的默认提示信息,没有提示具体的错误原因是为了

避免把一些不必要的信息暴露给用户,从而导致一些安全隐患,在开发过程中,我们只需要开启调试

模式就可以看到具体的错误信息了。

下面,我们修改下项目配置文件,加上调试模式的配置:

PHP代码

returnarray(

// 定义数据库连接信息

'DB_TYPE'=>'mysql',

'DB_HOST'=>'localhost',

'DB_NAME'=>'thinkphp',

'DB_USER'=>'root',

'DB_PWD'=>'',

'DB_PORT'=>'3306',

'DB_PREFIX'=>'think_',

// 开启调试模式

'DEBUG_MODE'=>true,

删除 Temp 目录下面的~app.php 文件后,我们再次刷新下浏览器,看到了错误信息

a4c26d1e5885305701be709a3d33442f.png

看了提示的错误信息,原来我们还没有给操作定义模板文件,我们在项目的 Tpl\default\Index\下面创建一个

index.html 模板文件,内容如下:

XML/HTML代码

{$title}title>

head>

[ {$vo.title} ] {$vo.content}

volist>

body>

html>

IndexAction 类的index 方法里面使用

PHP代码

$this->display();

输出页面的时候,会自动读取 Tpl\default\Index\index.html 模板文件来输出。

现在我们再次在浏览器里面输入 http://localhost/myApp/

就可以看到动态数据的输出了,注意看页面的 Title 文字的变化。

a4c26d1e5885305701be709a3d33442f.png

我们看到了页面输出了数据库的两条记录,并且下面还显示了很多的运行时间信息,这个是开启调试

模式之后系统默认的显示信息,包括了页面执行时间、数据库操作次数、内存使用情况 当前加载的类

库数量,以及页面执行的 SQL 语句和错误记录等等。这些信息是能够给开发调试带来很大的帮助,而

且页面 Trace 信息是可以定制显示的,你现在看到的是系统默认的显示项目。

OK,假设我们项目开发完成了,需要正式部署到服务器了,建议关闭调试模式,配置文件中原来的

// 开启调试模式

'DEBUG_MODE'=>true,

修改为

// 关闭调试模式

'DEBUG_MODE'=>false,

现在,我们重新刷新下浏览器,就会看到下面的页面了,显然干净了很多。

到此为止,我们已经完成了一个简单的数据库读取的例子,也带您领略了使用 ThinkPHP 开发的大致过程。当然,ThinkPHP

的殿堂还有更多更好的功能在等着你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

理解Windows窗体和WPF中的跨线程调用

你曾开发过Windows窗体程序,可能会注意到有时事件处理程序将抛出InvalidOperationException异常,信息为“ 跨线程调用非法:在非创建控件的线程上访问该控件”。这种Windows窗体应用程序中 跨线程调用时的一个最为奇怪的行为就是,有…

什么是嵌入式系统

在我们的日常生活中,我们经常使用许多使用嵌入式系统技术设计的电气和电子电路和套件。计算机,手机,平板,笔记本电脑,数字电子系统以及其他电子和电子设备都是使用嵌入式系统设计的。 什么是嵌入式系统?将硬…

面向数据科学家的实用统计学_数据科学家必知的统计数据

面向数据科学家的实用统计学Beginners usually ignore most foundational statistical knowledge. To understand different models, and various techniques better, these concepts are essential. These work as baseline knowledge for various concepts involved in data …

字符串、指针、引用、数组基础

1.字符串:字符是由单引号所括住的单个字母、数字或符号。若将单引号改为双引号,该字符就会变成字符串。它们之间主要的差别是:双引号的字符串“A”会比单引号的字符串’A’在字符串的最后补上一个结束符’\0’(Null字符&#xff0…

suse安装php,SUSE下安装LAMP

安装Apache可以看到编译安装Apache出错,rpm包安装gcc (首先要安装GCC)makemake install修改apache端口cd /home/sxit/apache2vi conf/httpd.confListen 8000启动 apache/home/root/apache2/bin/apachectl start(stop restart)http://localhost:8000安装一下PHP开发…

自己动手写事件总线(EventBus)

2019独角兽企业重金招聘Python工程师标准>>> 本文由云社区发表 事件总线核心逻辑的实现。 <!--more--> EventBus的作用 Android中存在各种通信场景&#xff0c;如Activity之间的跳转&#xff0c;Activity与Fragment以及其他组件之间的交互&#xff0c;以及在某…

viz::viz3d报错_我可以在Excel中获得该Viz吗?

viz::viz3d报错Have you ever found yourself in the following situation?您是否遇到以下情况&#xff1f; Your team has been preparing and working tireless hours to create and showcase the end product — an interactive visual dashboard. It’s a culmination of…

php 数组合并字符,PHP将字符串或数组合并到一个数组内方法

本文主要和大家分享PHP将字符串或数组合并到一个数组内方法&#xff0c;有两种方法&#xff0c;希望希望能帮助到大家。一般写法&#xff1a;<?php /*** add a string or an array to another array** param array|string $val* param array $array*/function add_val_to_a…

xcode 4 最低的要求是 10.6.6的版本,如果你是 10.6.3的版本,又不想升级的话。可以考虑通过修改版本号的方法进行安装

xcode 4 最低的要求是 10.6.6的版本&#xff0c;如果你是 10.6.3的版本&#xff0c;又不想升级的话。可以考虑通过修改版本号的方法进行安装。 一、打开控制台&#xff1b; 二、使用root用户&#xff1b; 命令&#xff1a;sudo -s 之后输入密码即可 三、编辑 /System/Library/C…

android 调试技巧

1.查看当前堆栈 Call tree new Exception(“print trace”).printStackTrace(); &#xff08;在logcat中打印当前函数调用关系&#xff09; 2.MethodTracing 性能分析与优&#xff08; 函数占用CPU时间&#xff0c; 调用次数&#xff0c; 函数调用关系&#xff09; a) 在程序…

Xml序列化

xml序列化 实现思路 通过程序生成一个xml文件来备份手机短信. 先获取手机短信的内容 —>通过xml备份.StringBuffer 代码如下public void click(View view) {StringBuffer sb new StringBuffer();sb.append("<?xml version\"1.0\" encoding\"UTF-8\…

java 添加用户 数据库,跟屌丝学DB2 第二课 建立数据库以及添加用户

在安装DB2 之后&#xff0c;就可以在 DB2 环境中创建自己的数据库。首先考虑数据库应该使用哪个实例。实例(instance) 提供一个由数据库管理配置(DBM CFG)文件控制的逻辑层&#xff0c;可以在这里将多个数据库分组在一起。DBM CFG 文件包含一组 DBM CFG 参数&#xff0c;可以使…

iphone视频教程

公开课介绍 本课程共28集 翻译至第15集 网易正在翻译16-28集 敬请关注 返回公开课首页 一键分享&#xff1a;  网易微博开心网豆瓣网新浪微博搜狐微博腾讯微博邮件 讲师介绍 名称&#xff1a;Alan Cannistraro 课程介绍 如果你对iPhone Development有兴趣&#xff0c;以下是入…

在Python中有效使用JSON的4个技巧

Python has two data types that, together, form the perfect tool for working with JSON: dictionaries and lists. Lets explore how to:Python有两种数据类型&#xff0c;它们一起构成了使用JSON的理想工具&#xff1a; 字典和列表 。 让我们探索如何&#xff1a; load a…

Vlan中Trunk接口配置

Vlan中Trunk接口配置 参考文献&#xff1a;HCNA网络技术实验指南 模拟器&#xff1a;eNSP 实验环境&#xff1a; 实验目的&#xff1a;掌握Trunk端口配置 掌握Trunk端口允许所有Vlan配置方法 掌握Trunk端口允许特定Vlan配置方法 实验拓扑&#xff1a; 实验IP地址 &#xff1a;…

django中的admin组件

Admin简介&#xff1a; Admin:是django的后台 管理的wed版本 我们现在models.py文件里面建几张表&#xff1a; class Author(models.Model):nid models.AutoField(primary_keyTrue)namemodels.CharField( max_length32)agemodels.IntegerField()# 与AuthorDetail建立一对一的关…

虚拟主机创建虚拟lan_创建虚拟背景应用

虚拟主机创建虚拟lanThis is the Part 2 of the MediaPipe Series I am writing.这是我正在编写的MediaPipe系列的第2部分。 Previously, we saw how to get started with MediaPipe and use it with your own tflite model. If you haven’t read it yet, check it out here.…

.net程序员安全注意代码及服务器配置

概述 本人.net架构师&#xff0c;软件行业为金融资讯以及股票交易类的软件产品设计开发。由于长时间被黑客攻击以及骚扰。从事高量客户访问的服务器解决架构设计以及程序员编写指导工作。特此总结一些.net程序员在代码编写安全以及服务器设置安全常用到的知识。希望能给对大家…

文件的读写及其相关

将软件布置在第三方电脑上会出现无法提前指定绝对路径的情况&#xff0c;这回影响到后续的文件读写&#xff1b;json文件是数据交换的一种基本方法&#xff0c;为了减少重复造轮子&#xff0c;经行标准化代码。关于路径&#xff1a; import os workspaceos.getcwd() pathos.pat…

接口测试框架2

现在市面上做接口测试的工具很多&#xff0c;比如Postman&#xff0c;soapUI, JMeter, Python unittest等等&#xff0c;各种不同的测试工具拥有不同的特色。但市面上的接口测试工具都存在一个问题就是无法完全吻合的去适用没一个项目&#xff0c;比如数据的处理&#xff0c;加…