php的ci框架从入门到精通
来源:互联网 发布:java ftp上传图片损坏 编辑:程序博客网 时间:2024/05/07 23:06
简单了解
。一个应用程序框架
。免费的、轻量、快速、功能强大
。基于M-V-C模型
。生成干净的URL( 便于优化 )
。扩展性强
。不需要模板引擎( 目标是性能最大化,选择不适用模板引擎 )
。拥有一个友好的中文用户社区
MVC介绍
。模型( Model )
提供增、删、改、查数据库资料这些功能
。视图( View )
负责提供展示给用户页面共功能
。控制器( Controller )
是模型、视图以及其他任何处理 的中介
下载CI框架
。application 文件夹存放的都是用户信息,我们着重看里面的三个文件夹,分别是 MVC
。index.php是入口文件
URL片段
。example.com/index.php/test/index
。第一部分(test):控制器
。第二部分( index ):方法、动作
创建一个自己的控制器
在controllers创建 home.php
<?php// 这句话的意思是检测一个常亮是否定义,没有定义代表没有访问单入口,所以输出‘无权访问文件夹’defined('BASEPATH') OR exit('No direct script access allowed');/*** 注意事项* 1. 类名和文件名字保持一致,Home要大写,继承CI_Controller*/class Home extends CI_Controller{public function index(){echo 'hello cherish'}
public function world(){echo 'hello world';}}
。访问 example.com/index.php/home/index / example.com/index.php/home/world ( 如果第二部分为空,默认为index )配置默认控制器
你会发现默认访问的控制器是 welcome.php, 不是我们写的home.php, 那怎么默认访问自己的控制器呢? 配置如下:
在 application文件夹下的 config文件夹 找到 routes.php 改动一行
$route['default_controller'] = 'welcome'; 改成: $route['default_controller'] = 'home';
载入视图
在控制器中:
$this -> load -> view( 'file_name' );
注意:.php文件的扩展名没有必要专门写,直接写视图的文件名就可以了,除非你使用了其他的扩展。
public function index(){$this->load->view( 'home' );}
注意要在 views下新建一个 home.php文件; 还可以载入多个视图
给视图分配数据
在控制器 home.php中
public function index(){// data 数据所有的视图中都可以接收到,不仅仅是 home.php$data['title'] = '我是标题';// 数组的形式传递数据$data['name'] = array('name' => 'cherish','age' => '22','sex' => 'girl');$this->load->view( 'home', $data );$this->load->view( 'head' );}
在视图 home.php 或者 head.php中:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title></head><body><?php echo $title; ?><hr>这个是home.php文件<hr><?php foreach( $name as $key => $v ): ?><span><?php echo $v ?></span><?php endforeach;?></body></html>
辅助函数
1.在控制器中手动载入
$this->load->helpers('name');
2.自动载入
application/config/autoload.php 找到
$autoload['helper'] = array('name');
url辅助函数
按照以上两种方法之一 载入URL函数,
$autoload['helper'] = array('url');
然后就可以使用这三个辅助函数:
1.site_url(): 获得url参数
2.base_url() : application/config/config.php设置的路径
3.redirect( ‘控制器名/方法名’ ): 跳转
sit_url 和 base_url 区别:
假如你config文件里面的base_url和index_page是这样定义的:
config['base_url'] = "http://domain.com/";
config['index_page'] = "index.php";
那么你若使用site_url("news/php/2");则实际url为
http://domain.com/index.php/news/php/2
若使用base_url("news/php/2");则url为:
http://domain.com/news/php2
表单验证流程:
1.载入验证类
$this->load->library( 'form_validation' );
2.设置规则$this->form_validation->set_rules( 'name值','报错信息','规则' );
3.执行验证( 返回bool值 )
$this->form_validation->run();
表单验证辅助函数
加载表单辅助函数(这样才可以用):
$this->load->helper( 'form' );
- set_value( 'name' ); //重填数据 ,就算验证错误,里面的内容还是存在的
- form_error( 'name', ' <span> ', ' </span> ');//显示错误信息
- set_select();
- set_checkbox();
- set_radio( 'name值', ' value值 ', TRUE );// true 默认选择哪个
<?php class Article extends CI_Controller{ // 发表模板 public function index(){ // 载入表单辅助函数 $this->load->helper( 'form' ); // 加载视图 $this->load->view( 'admin/add.html' ); } // 发表文章动作 public function send(){ // 载入表单验证类 $this->load->library( 'form_validation' ); // 设置规则 $this->form_validation->set_rules( 'title', '文章标题', 'required|min_length[5]' );
$this->form_validation->set_rules( 'type' '类型', 'required|integer' );
// 执行验证 $status = $this->form_validation->run(); if($status){ echo '数据库操作'; }else { $this->load->view( 'admin/add.html' ); } } }
视图 add.html:
<form method="post" class="form-x" enctype="multipart/form-data" action="<?php echo site_url('admin/article/send') ?>"> <div class="form-group"> <div class="form"> <label>标题:</label> <input type="text" class="input w50" value="<?php echo set_value('title'); ?>" name="title" /> <?php echo form_error('title', '<span>', '</span>') ?> </div><div class="form"> <label>类型:</label> <input type="radio" value="0" name="type" <?php echo set_radio('type', '0', TRUE); ?> />普通<input type="radio" value="1" name="type" <?php echo set_radio('title', '1'); ?> />热门</div></div></form>
$config['language']= ' English '; // 默认英文,可以把它替换成你的汉化包的名字;
- php的ci框架从入门到精通
- php CI框架入门
- testNG框架从入门到精通
- PHP从入门到精通 读书笔记
- php从入门到精通---CH3
- CH5---php从入门到精通
- 从入门到精通
- 学习PHP之《php从入门到精通》
- PHP视频从入门到精通---适合PHP初学者
- 真正的java从入门到精通。
- Cmm从入门到精通的讲解
- 原子弹的制作 从入门到精通
- 集合框架从入门到精通(一)
- CSS框架960Grid从入门到精通一步登天
- Lex和Yacc从入门到精通(4)-能够使用C++的Lex和Yacc框架
- Lex和Yacc从入门到精通(4)-能够使用C++的Lex和Yacc框架
- 【Spring从入门到精通】(一)Spring框架的整体架构
- 再谈PHP从入门到精通需要几年
- AndroidView绘制流程与源码分析
- webapi Route 特性
- http状态码
- QT 打开PDF文件或图片文件
- oracle安装使用记录
- php的ci框架从入门到精通
- linux常用关机命令及区别
- Python学习笔记(2)——变量与运算
- 数据库锁机制
- 安卓的开发网站
- cocos2d-x嵌入android的camera 实现前后摄像头的预览和保存
- 自定义 iOS 密码框或验证码输入框,支持多位验证码,4位或6位验证码自己选择。
- 白书贪心3题,poj2376\1328\3190
- C#Thread 线程的简单使用