0

0

CodeIgniter视图 & 模型 & 控制器,codeigniter_PHP教程

php中文网

php中文网

发布时间:2016-07-13 10:22:01

|

910人浏览过

|

来源于php中文网

原创

CodeIgniter视图 & 模型 & 控制器,codeigniter

--------------------------------------------------------------------------------------------------------

载入视图

  $this->load->view('home/name');  //可以用子文件夹存储视图,默认视图文件以'.php'结尾

 

立即学习PHP免费学习笔记(深入)”;

载入多个视图

  $data['title'] = 'chenwei';      //给视图添加动态数据

  $data['message'] = 'Your message';

  $this->load->view('header', $data);  //当一次性载入多个视图时,你只需在第一个视图传入数据即可(header视图显示title, content视图显示message)

  $this->load->view('menu');

  $this->load->view('content');

  $this->load->view('footer');

使用对象的例子:

  $data = new Someclass();

  $this->load->view('blogview', $data);

 

立即学习PHP免费学习笔记(深入)”;

视图文件中的变量

  

<?php echo $title; ?>

  

 

立即学习PHP免费学习笔记(深入)”;

创建循环

  class Blog extends CI_Controller{

    function index()

    {

      $data['todo_list'] = array('clean house', 'call mom', 'run errands');

      $data['title'] = 'my real title';

      $data['heading'] = 'my real heading';

      

      $this->load->view('blogview', $data);

    }

  }

 

立即学习PHP免费学习笔记(深入)”;

  

<?php echo $title; ?>

  

  

        

        

  •     

      

 

立即学习PHP免费学习笔记(深入)”;

获取视图内容(赋值给一变量)

  $buffer = $this->load->view('blogview', $data, true);

  //view函数第三个可选参数可以改变函数的行为。如果将view第三个参数设置为true(布尔),则函数返回数据。view函数缺省行为是 false,将数据发送到浏览器。如果想返回数据,记得将它赋到一个变量中。

 

立即学习PHP免费学习笔记(深入)”;

@黑眼诗人:参考用户手册 PHP替代语法 

视图文件的PHP替代语法 =>

  config/config.php中打开$config['rewrite_short_tags'],那么如果你的服务器不支持短标记,CodeIgniter将重写所有短标记。

  注:如果你使用这个特性,如果在你的视图文件中发生 PHP 错误,则错误信息和行号将无法准确显示。相反,所有的错误将显示为 eval () 的错误。

正常的echo形式:

使用替代语法:=$variable?>

 

立即学习PHP免费学习笔记(深入)”;

替代控制结构

  

        

        

  • =$item?>
  •     

      

  注:这里没有大括号。相反,结束大括号被替换成了 endforeach 。上面列出的每一个控制结构也有相似的关闭语法:endif, endfor, endforeach 和 endwhile,并且在每个结构以后注意不要使用分号(除了最后一个),用冒号!

  

    

Hi chenwei.

  

    

Hi Joe

  

    

Hi unknow user

  

 

立即学习PHP免费学习笔记(深入)”;

--------------------------------------------------------------------------------

 

立即学习PHP免费学习笔记(深入)”;

模型类文件均存放在 application/models 目录,当然也可以建立子目录,便于大型项目开发管理。

基本的模型类

  1.类名首字母必须大写,其它字母小写,确保继承基本模型类CI_Model,文件名是模型类名的小写形式。

  2.模型可以在控制器中被引用。

    如:$this->load->model('User_model'); 或 $this->load->model('home/User_model');

   模型一旦被载入 就可以使用,默认情况下模型名称直接被引用作为对象名。

    如:$this->User_model->function();

   当然可以重新命名对象名,通过在加载模型函数中指定第二个参数来设定。

    如:$this->load->model('User_model', 'fubar');

      $this->fubar->function();

 

立即学习PHP免费学习笔记(深入)”;

自动载入模型

  如果需要特定模型在整个项目中起作用,可以让CI在初始化时自动装载,通过在application/config/autoload.php文件的自动装载数组中添加该模型。

 

立即学习PHP免费学习笔记(深入)”;

连接到数据库

  模型被载入时不会自动连接数据库,以下方法可以使你连接数据库,

  1.标准方法连接数据库

  2.把第三个参数设置为TRUE来使模型装载函数自动连接数据库

    $this->load->model('User_model', '', TRUE);

  3.手动设定第三个参数来载入你的自定义数据库配置

    $config['hostname'] = 'localhost';

    $config['username'] = 'root';

    $config['password'] = 'root';

Udio
Udio

一款全新的AI音乐创作工具,目前免费,每月可以生成1200首歌

下载

    $config['database'] = 'test';

    $config['dbdriver'] = 'mysql';

    $config['dbprefix'] = '';

    $config['pconnect'] = FALSE;

    $config['db_debug'] = TRUE;

  

    $this->load->model('User_model', '', $config);

    //注:自动连接数据库和手动连接数据库时,消耗的内存情况一样。

 

立即学习PHP免费学习笔记(深入)”;

完整示例:

  class User_model extends CI_Model{

    var $title = '';

    var $connect = '';

    var $data = '';

    function __construct()

    {

      parent::__construct();

    }

    function get_last_ten_entries()

    {

      $query = $this->db->get('entries', 10);

      return $query->result();

    }

    function insert_entry()

    {

      $this->title = $this->input->post('title'); //接收POST提交的数据,使用了input类

      $this->content = $this->input->post('content');

      $this->date = time();

 

立即学习PHP免费学习笔记(深入)”;

      $this->db->insert('entries', $this);

    }

    function update_entry()

    {   

      $this->title = $this->input->post('title');

      $this->content = $this->input->post('content');

      $this->date = time();

 

立即学习PHP免费学习笔记(深入)”;

      $this->db->update('entries', $this, array('id'=>$this->input->post('id')));

    }

  }

  //上面用到的函数是 Active Record 数据库函数

 

立即学习PHP免费学习笔记(深入)”;

 -----------------------------------------------------------------------------------------------------

 

立即学习PHP免费学习笔记(深入)”;

控制器文件一般保存在application/controllers/ 文件夹:

  默认URL路由配置 $config['uri_protocol'] = 'AUTO'; //默认即pathinfo模式,可选

 

立即学习PHP免费学习笔记(深入)”;

  注:类名必须大写字母开头,首字母小写属于无效写法。

基本的控制器类

  class Blog extends CI_Controller{

    public function __construct()

    {

      parent::__construct();  

      //构造函数并不能返回值,但是可以用来设置一些默认的功能。确保你的控制器扩展自父控制器类,以便它能够继承其所有的方法。

    }

    public function index()

    {

      echo 'Hello World!';

    }

    public function comments()

    {

      $this->load->view('comment');

    }

  }

  //使用 example.com/index.php/blog/comments 来访问 comments方法

 

立即学习PHP免费学习笔记(深入)”;

定义默认控制器

  application/config/routes.php 中 $route['default_controller'] = 'Blog';

 

立即学习PHP免费学习笔记(深入)”;

将控制器放入子文件夹

  在application/controllers 目录下新建目录,放入控制器即可。注:如果你要使用某个子文件夹下的功能,就要保证 URI 的第一个片段是用于描述这个文件夹的。application/index.php/home/blog/comments/123

 

立即学习PHP免费学习笔记(深入)”;

私有方法:

  private function _test()

  {

    return $variable = 'aaa'; //即使不加修饰词private,只要方法名字前带下划线(_)做前缀,即为私有方法,无法通过URL访问。

  }

 

立即学习PHP免费学习笔记(深入)”;

保留的方法名称:

  控制器类名不能为index, 如 class Index extends CI_Controller{},因为index为CI默认方法名,包含在保留字内,具体参考保留字。

 

立即学习PHP免费学习笔记(深入)”;

重新定义方法的调用规则:

 _remap(); 

 

立即学习PHP免费学习笔记(深入)”;

处理输出:

  _output(); 详细参考输出类。

----------------------------------------------------------------------------------------------

解codeigniter的frameset问题

哥们,首先把服务端程序和页面程序理解清楚。frame是页面代码,和ci没关系,如果你要控制某个frame的src的话,首先要给frame 的name属性赋值,比如
控制他的src,link
 

CodeIgniter 是什?

CodeIgniter 是一个为用 PHP 编写网络应用程序的人员提供的工具包。它的目标是实现让你比从零开始编写代码更快速地开发项目,为此,CI 提供了一套丰富的类库来满足通常的任务需求,并且提供了一个简单的接口和逻辑结构来调用这些库。CodeIgniter 可以将需要完成的任务代码量最小化,这样你就可以把更多的精力放到项目的开发上了。
CodeIgniter 是免费的
CodeIgniter 是经过 Apache/BSD-style 开源许可授权的,只要你愿意就可以使用它。阅读许可协议可获得更多的信息。
CodeIgniter 是轻量级的
真正的轻量级。我们的核心系统只需要一些非常小的库,这与那些需要更多资源的框架完全相反。额外的库文件只在请求的时候加载,依需求而定,所以核心系统是非常快而且轻的。
CodeIgniter 是快速的
速度非常快。你要找到一个比 CodeIgniter 表现更优的框架应该很难吧。
CodeIgniter 使用 M-V-C 模型
CodeIgniter 使用了模型(Model)- 视图(View)- 控制器(Controllers)的方法,这样可以更好地使表现层和逻辑层分离。这对项目的模板设计者来说是非常有用的,它最小化了模板中的程序代码量。我们在 MVC 各自的页面中对此做了更多的介绍。
CodeIgniter 生成干净的 URL
CodeIgniter 生成的 URL 非常干净而且是对搜索引擎友好化的。不同于标准的字符串查询方法,CodeIgniter使用了 基于段 的方法:
example.com/news/article/345注意:index.php 文件是被默认包含在 URL 中的,但是可以通过更改 .htaccess 文件来改变这个设置。
CodeIgniter 功能强大
CodeIgniter 拥有全范围的类库,可以完成大多数通常需要的网络开发任务,包括: 读取数据库、发送电子邮件、数据确认、保存 session 、对图片的操作,以及支持 XML-RPC 数据传输等。
CodeIgniter 是可扩展的
这个系统可以非常简单的通过自定义类库、辅助函数来进行扩展,或者也可以通过扩展类、系统钩子来实现。
CodeIgniter 不需要模板引擎
虽然 CodeIgniter确实自带了一个可选的模板解析器程序,但不要求你必须使用模板。模板引擎完全与本地化PHP代码的性能需求不符,使用模板引擎我们要学习其语法,这最低限度只比学PHP基础要容易一点点。考虑以下PHP代码:

  • {foreach from=$addressbook item=name}
  • {/foreach}
的确,例中模板引擎的代码比较清晰,但这带来一个性能问题,因为伪代码要先被转换成PHP才能运行。我们的目标是性能最大化
, 所以我们选择不使用专用的模板引擎。
CodeIgniter 已彻底文档化
程序员都喜欢写代码讨厌写文档。当然我们也一样,但是既然文档和代码本身一样重要,我们就要完成它了。况且我们代码资源极其干净而且方便注释。
CodeIgniter 拥有一个友好的用户社区
你可以在我们的社区论坛中......余下全文>>
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/851761.htmlTechArticleCodeIgniter视图 模型 控制器,codeigniter -------------------------------------------------------------------------------------------------------- 载入视图 $this-load-vi...
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

1142

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

371

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

245

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

37

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

114

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

77

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

17

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

863

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

123

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号