#
# ThinkPHP 3.1.2 输出和模型使用
#
讲师:赵桐正
微博:http://weibo.com/zhaotongzheng
本节课大纲:
一、ThinkPHP 3 的输出 (重点)
a、通过 echo 等(PHP原生的输出方式)在页面中输出。
** V -- 负责输出(页面显示),调用一个方法,输出模板文件。
b、通过display方法输出(推荐)
在『模块』中用$this->display();=》指定模板输出
在 项目目录/应用目录/tpl/模块名/{方法名.html} --> 这是模板文件。
** 将【模块】中的动态数据 交给 【模板】
** 想分配变量可以使用assign方法
在【模块】中: $this->assign('data',$name); ->data是一个标识
在【模板】中:使用定点符({$data} -- 花括号和$ + 标识)嵌入这个变量(data)
** 『模板』花括号 -》 是定界符(ThinkPHP默认的) -- 不太建议使用这种默认的花括号定界符。
@@ 如何修改左右定界符??
c、修改左右定界符
需要修改配置文件中的配置项
'TMPL_L_DELIM'=>'<{', //修改左定界符
'TMPL_R_DELIM'=>'}>', //修改右定界符
二、ThinkPHP 3 的【模型】使用 (重点)
M -- 负责对数据的操作,如:从数据库中读取数据。
** 如何从DB读取数据。(获取数据)
*** 新建数据库,打开localhost/phpmyadmin,
新建数据库:【库名】,获取【utf8_general_ci】
表结构:
存储引擎:MyISAM;(默认选择的InnoDB可以开启“事务”)
整理:utf8_general_ci
*** 插入数据
** 怎么把数据取出来???
1、(在『模块』中操作)要实例化一个类,
需要在方法中通过new Model(表名)的形式操作数据库
$m=new Model('User'); //建议U大写
$arr=$m->select(); //select方法 -》 返回表中所有数据。
***** var_dump($arr); //var_dump方法会返回变量的值,
***** dump($arr,1,"<pre>",0); //用于格式化输出变量值
'DB_TYPE'=>'mysql', //设置数据库类型
'DB_HOST'=>'localhost',//设置主机
'DB_NAME'=>'thinkphp',//设置数据库名
'DB_USER'=>'root', //设置用户名
'DB_PWD'=>'', //设置密码
'DB_PORT'=>'3306', //设置端口号
'DB_PREFIX'=>'tp_', //设置表前缀
/*new class*/
也可以使用DSN方法进行配置(在配置文件中)
'DB_DSN'=>'mysql://root:111@localhost:3306/thinkphp',//使用DSN方式配置数据库信息
//间隔符是冒号(:)
*** 如果两种方式同时存在,以『DSN方式为优先』
@@ 还有一种【简单实用模型的方式】
M() 等效为 new Model();
$m=M('User');
$arr=$m->select();
使用模型的实例可以对数据进行操作,操作的工作一般就是对数据库进行 【增删改查 CURD】
增 -C Create $m->add()//实际的方法
删 -D Delete $m->delete()
改 -U Update $m->save()//实际的方法
查 -R Read $m->select()
三、补充 (了解)
a、在【模板】中,可以遍历数组
<volist name='data' id='vo'>
<!-- name='data' 是volist的标识名(data)-->
<{$vo.id}>----<{$vo.username}>-----<{$vo.sex}><br/>
</volist>
b、我们可以开启调试功能中的page_trace
1.开启调试功能
//3.开启调试模式
define('APP_DEBUG',true);
2.我们需要设置配置文件,开启页面trace
'SHOW_PAGE_TRACE'=>true,//开启页面Trace
相关文章
- 【Oculus Interaction SDK】(九)使用控制器时显示手的模型
- 在低代码开发平台 ILLA Cloud 中使用 Hugging Face 上的模型
- ThinkPHP中使用ajax接收json数据的方法
- 习题6-6 使用函数输出一个整数的逆序数
- spring练习,使用Eclipse搭建的Spring开发环境,使用set注入方式为Bean对象注入属性值并打印输出。
- Tensorflow:使用在一个模型中训练的权重在另一个模型中,不同的模型
- p:selectOneRadio不使用p:ajax更新事件“更改”中的模型
- 使用Onyx的MVVM中父/子视图模型关系的最佳实践?
- 更好的方法来使用模型类辅助方法
- 缓存MVC操作的输出,但是只对经过身份验证的用户使用缓存的版本。