ThinkPHP之视图模版的使用

时间:2022-04-20 04:40:03

用户发起一个请求后,服务器应该返回一个页面,而页面是由我们的视图层来控制的。

一、修改控制器


<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
...........
} public function sayHello(){
$this->display();
}
}

我们在sayHello()中调用了display方法,而该方法会去View层中找相应的视图模版,并将视图模版放回给用户。查找的顺序如下:

  1. 进入View下查找Index控制器目录
  2. 进入Index目录查找sayHello.html
  3. 找到文件并返回给用户

二、视图操作


  • 给视图模版传参
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
echo '.....';
} public function sayHello(){
$username = '冬雨';
     $this->assign('username', $username); //设置视图中的变量
$this->display(); //调用相应的视图
}
}
  • 编写视图页面
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<p> 你好!{$username}</p>
</body>
</html>
  • 请求sayHello方法

  ThinkPHP之视图模版的使用

三、model操作


在编写model层时需要先连接数据库,这里需要修改我们模块的配置文件./CloudCrypt/Home/Conf/config.php

<?php
return array(
//'配置项'=>'配置值'
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => '127.0.0.1', // 服务器地址
'DB_NAME' => 'weibo', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => 'admin', // 密码
'DB_PORT' => 3306, // 端口
// 'DB_PARAMS' => array(), // 数据库连接参数
// 'DB_PREFIX' => 'think_', // 数据库表前缀
'DB_CHARSET'=> 'utf8', // 字符集
// 'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录SQL日志
);
  • 编写控制器1
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
echo '.....';
} public function sayHello(){
$user = M('User'); //user是数据库中的user表
$arr = $user->select(); //查询user表中的所有数据,结果集以数组的方式返回
$this->assign('data', $arr[0]['username']); //结果集中第0行中的username字段值
$this->display(); //给用户返回视图
}
}
  • 编写视图层1   视图层仍旧使用上面的那个视图,只不过把username换成了data而已
  • 编写控制器2
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
echo '.....';
} public function sayHello(){
$user = M('User');
$arr = $user->select();
$this->assign('data', $arr); //传给视图层的是一个数组
$this->display();
}
}
  • 编写视图层2 (读取数组操作)
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<!--每次从data中取一行赋值给row><-->
<volist name="data" id="row">
{$row.id}------{$row.username}----{$row.userpw}<br/>
</volist>
</body>
</html>
  • 执行结果

  ThinkPHP之视图模版的使用

三、小技巧


  为了方便我们开发中的调试,我们可以在入口文件中开启DEBUG模式。ThinkPHP同时提供PAGE_TRACE功能,能查看文件之间的文件之间的调用,SQL语句的查看等功能。

开启PAGE_TRACE:在我们的模块配置文件中添加:‘SHOW_PAGE_TRACE'=>true

然后在页面的右下角有个小图标,点击就可以查看相关信息了。

关于model层的操作请详见

http://www.kancloud.cn/manual/thinkphp/1728