controller中就是处理一些逻辑业务,需要注意的是ci的传递数据,ci的所有数据都是通过一个数组传递到模板中的,如:
$data['title'] = 'Your title';
$data['message'] = 'Your message';
$this->load->view('header',$data);
在视图模板中需要这样写<?php echo $title?><?php echo $message?> 而不是:<?php echo $data['title']?><?php echo $data['message']?>
class Blog extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model("Blog_model");
$this->load->model('Cate_model');
}
public function index()
{
$this->load->helper('common');
//获取分类
$data['cates'] = $this->Cate_model->getAll();
$data['blogs'] = $this->Blog_model->getAll();
$this->load->view('blog',$data);
}
public function blogadd()
{
if(IS_POST)
{
$this->Blog_model->add();
redirect("blog/index");
}else
{
$data['cates'] = $this->Cate_model->getAll();
$this->load->view('blogadd', $data);
}
}
public function blogedit()
{
if(IS_POST)
{
$this->Blog_model->edit();
redirect("blog/index");
}else
{
$data['id'] = $this->uri->segment(4);
$data['cates'] = $this->Cate_model->getAll();
$data['blog'] = $this->Blog_model->getOne($data['id']);
$this->load->view('blogedit',$data);
}
}
public function del()
{
$this->Blog_model->del();
redirect("blog/index");
}
}
IS_POST是我自定义的常量,自定义常量在application/config/constants.php中定义;
$this->load->helper('common');是我自定义的一个帮助类,它是放在application/helpers/文件夹下,并且命名方式为XXX_helper.php.这里说下在我在视图模板中需要根据id读取类名,所以自定义了一个方法;这样在模板视图中就可以使用这个方法了
function getCateName($data,$cid)
{
$cate_name = "";
foreach($data as $key)
{
if ($key['id'] == $cid)
{
$cate_name = $key['cate_name'];
}
}
return $cate_name;
}
视图模板中使用:
<td width="20%"><?php echo getCateName($cates, $blog['cid'])?></td>