年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2939|回复: 0

2、使用MVC模型实现基本输出

[复制链接]
  • TA的每日心情
    奋斗
    2022-12-13 21:26
  • 签到天数: 371 天

    [LV.9]以坛为家II

    发表于 2016-3-8 21:55:54 | 显示全部楼层 |阅读模式
    一、ThinkPHP的输出
    1、通过echo等php原生输出方式在页面中输出;
    2、通过display方法输出(类似smarty模板引擎)参照:http://www.yusian.com/thread-11086-1-1.html
    2.1、控制器实现:
    [PHP] 纯文本查看 复制代码
    <?php
    namespace Home\Controller;
    use Think\Controller;
    class IndexController extends Controller {
    	public function index(){
    		// 1、获取模型数据
    		$name = "Sian";
    	    // 2、分配模板数据
    	    $this->assign('data', $name);
    	    // 3、调用模板显示
    	    $this->display();
    	}
    }
    2.2、直接执行会出现如下所示错误提示:
    屏幕快照-2016-03-08-下午8.46.05.jpg
    2.3、原因在于默认情况下在Index控制器下的Index方法中执行$this->display()方法会加载视图模板目录下的Index目录下的index.html模板文件
    2.4、错误提示没有找相对应的模板文件,因此在View目录下创建一个Index目录,在Index目录下创建一个index.html的模板文件
    2.5、文件内容示例如下:
    [HTML] 纯文本查看 复制代码
    <html>
    	<body>
    		<h1>Hello {$data}!</h1>
    	</body>
    </html>
    2.6、运行结果为Hello Sian!
    3、修改左右定界符,'TMPL_L_DELIM'、'TMPL_R_DELIM' 两个配置项;
    3.1、默认定界符为“{}”, 为防止与其他框架冲突,一般建议修改定界符
    3.2、在配置文件中添加如所示
    [PHP] 纯文本查看 复制代码
    	'TMPL_L_DELIM'		=>	'<{',	// 修改左定界符
    	'TMPL_R_DELIM'		=>	'}>',	// 修改右定界符
    二、ThinkPHP模型的使用
    1、在开始之前,我们首先在数据库thinkphp中创建一个think_data数据表(以mysql数据库为例):
    [SQL] 纯文本查看 复制代码
    CREATE TABLE IF NOT EXISTS `think_data`(
    `id`int(8)unsigned NOT NULL AUTO_INCREMENT,
    `data` varchar(255) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;
    INSERT INTO `think_data`(`id`,`data`) VALUES
    (1,'thinkphp'),
    (2,'php'),
    (3,'framework');

    2、如果我们需要读取数据库中的数据,就需要在模块配置文件中添加数据库连接信息如下:
    [PHP] 纯文本查看 复制代码
    // 添加数据库配置信息
    'DB_TYPE'=>'mysql',// 数据库类型
    'DB_HOST'=>'127.0.0.1',// 服务器地址
    'DB_NAME'=>'thinkphp',// 数据库名
    'DB_USER'=>'root',// 用户名
    'DB_PWD'=>'',// 密码
    'DB_PORT'=>3306,// 端口
    'DB_PREFIX'=>'think_',// 数据库表前缀
    'DB_CHARSET'=>'utf8',// 数据库字符集
    3、接下来,我们修改下控制器方法,添加读取数据的代码:
    [PHP] 纯文本查看 复制代码
    <?php
    namespace Home\Controller;
    use Think\Controller;
    class IndexController extends Controller {
    	public function index(){
    		// 1.1、创建数据库模型
    		$m = M('user');
    		// 1.2、查找数据
    		$array = $m->select();
    		// 1.3、取出数据
    		$name = $array[0]['username'];
    	    // 2、分配模板数据
    	    $this->assign('data', $name);
    	    // 3、调用模板显示
    	    $this->display();
    	}
    }
    三、源代码下载:
    游客,如果您要查看本帖隐藏内容请回复
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-4-20 03:34 , Processed in 0.054270 second(s), 25 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表