CI框架编码问题总结_第一个MVC案例

news.php代码如下:

<pre name="code" class="php"><?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class News extends CI_Controller{
	public function __construct()
	{
		parent::__construct();
		#载入news_model,载入之后可以使用$this->news_model来操作
		$this->load->model('news_model');
	}

	//显示添加新闻的表单
	public function add()
	{
		$this->load->view('add.html');
	}

	//完成新闻的添加
	public function insert()
	{
		#获取表单提交的数据
		$data['title'] = $_POST['title'];
		$data['author'] = $_POST['author'];
		$data['content'] = $_POST['content'];
		$data['add_time'] = time();
		#调用news_model的方法即可
		if($this->news_model->add_news($data)){
			echo "添加成功";
		}else{
			echo "添加失败";
		}
 	}

 	//显示新闻列表
 	public function index(){
 		#调用list_news方法得到数据
 		$data['news'] = $this->news_model->list_news();
 		#分配到视图
 		$this->load->view('list.html',$data);
 	}

 	//编辑新闻
 	public function edit(){

 	}

 	//删除新闻
 	public function delete(){
 		
 		
 	}

}


 

News_model.php代码:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class News_model extends CI_Model{ 
	const TBL = 'news';

	//构造函数
	public function __construct()
	{
		//调用父类构造函数,必不可少
		parent::__construct();
		//手动载入数据库操作类
		$this->load->database();
	}
	
	/**
	*@access public
	*@param $data array
	*@return bool 成功返回true,失败返回false
	*/
	public function add_news($data){
		//使用AR完成插入操作
		return $this->db->insert(self::TBL,$data);
	}

	/**
	*@access public
	*@return array 查询结果
	*/
	public function list_news(){
		$query = $this->db->get(self::TBL);
		return $query->result_array();
	}

	public function edit_news(){


	}

	public function delete_news(){
		$query = $this->db->delete(oid);

	}
}



add.html代码如下:

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html"; charset="utf-8">
	<title>添加新闻</title>
	<style>

	</style>
</head>
<body>
	<form action="<?php echo site_url('news/insert')?>" method="POST"/>
 	<!--form action="news.php" method="post"-->
 	<fieldset>
 		<legend>添加新闻</legend>
 		<ul>
 			<li><label for="">标题</label><input type="text" name="title"/></li>
 			<li><label for="">作者</label><input type="text" name="author"/></li>
 			<li><label for="">正文</label><textarea name="content" id="" cols="100" rows="7"></textarea></li>
 			<li><label for="">  </label><input type="submit" name="btn" value="添加"/></li>
 			<input type="hidden" name="act" value="add" />
 		</ul>
 	</fieldset> 
 	</form>
 	
</body>
</html>

注意点:构造函数这里__construct是两个下划线,method方法后最好是大写,比如POST,GET等等。

第一个添加新闻的案例编码结束后,总结CI的执行流程大致为:

控制器:囊括了所有可能的操作函数或者方法

一般首先加载视图,也就是HTML文件,页面的操作由<form action="<?php echo site_url('news/insert')?>" method="POST"/></form>这样一个表单操作来触发后续流程,这里触发的操作就是一个insert的操作,这个insert的函数或者方法依然是控制器中news这个扩展类的函数,而由于insert涉及到了操作数据库,所以首先必须将操作数据库的model扩展类在控制器中首先加载进来,这样insert函数就可以直接调用news_model中方法了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值