zoukankan      html  css  js  c++  java
  • ThinkPHP之视图模版的使用

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

    一、修改控制器


     

    <?php
    namespace HomeController;
    use ThinkController;
    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 HomeController;
    use ThinkController;
    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方法

      

    三、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 HomeController;
    use ThinkController;
    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 HomeController;
    use ThinkController;
    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>
    • 执行结果

      

    三、小技巧


     

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

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

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

    关于model层的操作请详见

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

  • 相关阅读:
    SQL Server中的事务日志管理(7/9):处理日志过度增长
    SQL Server中的事务日志管理(6/9):大容量日志恢复模式里的日志管理
    如何阻止SELECT * 语句
    SQL Server中的事务日志管理(5/9):完整恢复模式里的日志管理
    SQL Server中的事务日志管理(4/9):简单恢复模式里的日志管理
    SQL Server中的事务日志管理(3/9):事务日志,备份与恢复
    SQL Server中的事务日志管理(2/9):事务日志架构概述
    在SQL Server里如何进行页级别的恢复
    SQL Server中的事务日志管理(1/9):事务日志概况
    第24/24周 数据库维护(Database Maintenance)
  • 原文地址:https://www.cnblogs.com/xidongyu/p/5559445.html
Copyright © 2011-2022 走看看