php的ci框架从入门到精通

简单了解

。一个应用程序框架

。免费的、轻量、快速、功能强大

。基于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 默认选择哪个
例子:
新建一个文件夹 admin下有 article.php 控制器:
<?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>


ci汉化包
你会发现错误信息是英文提示的,可以网上下载汉化包,放在 application > language 中;然后找到 config.php  找到这一行 
$config['language']	= '  English '; // 默认英文,可以把它替换成你的汉化包的名字;
 



  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值