全部博文(2065)
分类:
2009-08-14 00:32:15
example.com/index.php/blog/index/ 类似于这种写法。第一个URI中部分表示哪个控制器
index表示该控制器中哪个方法。
2.类名第一个字母必须要大写。即class Blog 这样是正确的!
3.
example.com/index.php/products/shoes/sandals/123 后面两个是传递过来的参数值!
这跟Django是非常相似的!
views.py中定义了一个方法有两个参数值。
def func(param1,param2):
这个时候的URI就会有两个参数赋值!
4.当然也可以覆盖父类方法进行重新定义
function _remap($method)
{
if ($method == 'some_method')
{
$this->$method();
}
else
{
$this->comments();
}
}
表示如果URI中的方法名正好跟这个一样就走这个方法体。否则就走另一个方法体!
5.可在控制器文件中定义类似于析构的这么一个方法_output()表示不论如何都将调用此方法!
6.如果不想通过URI访问到某个方法的话可以将这个方法私有化:
function _utility() 方法名前加 _ 即可实现
7.可以添加进来子控制器的。
只要在 application/controllers 目录下创建文件夹并放入你的控制器就可以了。(统一存放在目录下面管理起来非常方便!): $this->load->view('name');
function index()
{
$data['page_title'] = 'Your title';
$this->load->view('header');
$this->load->view('menu');
$this->load->view('content', $data);
$this->load->view('footer');
}
5.将来考虑将一个大的项目划分成多个子应用。然后我可以采用类似Django的方法针对每一个子应用单独建立其独有的视图文件夹与控制器文件夹来存放相应的代码!
$this->load->view('folder_name/file_name'); 如何建立子文件夹来保存起来子应用的视图层代码!
6.赋动态数据给视图
数据通过控制器以一个数组或是对象的形式传入视图 , 这个数组或对象作为视图载入函数的第二个参数 .$data = array('title' => 'My Title','heading' => 'My Heading','message' => 'My Message');
$this->load->view('blogview', $data);
$data = new Someclass();
$this->load->view('blogview', $data);
比如说如下的一个视图方法:
function index()
{
$data['title'] = "My Real Title";
$data['heading'] = "My Real Heading";
$this->load->view('blogview', $data);
}
那我们的视图层代码就要这样编写: