码迷,mamicode.com
首页 > 其他好文 > 详细

CodeIgniter学习笔记一

时间:2015-05-21 12:16:54      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

一、基本结构

CodeIgniter3.0.0解压后有8个文件,分别是:

  • application:项目文件
  • system:系统(框架)文件,为方便升级,不建议修改
  • user_guid:用户手册,不需要加入项目
  • composer.json:composer配置文件,不需要加入项目
  • contributing.md:如何参与项目贡献代码,不需要加入项目
  • index.php:项目入口文件
  • license.txt:许可文件,不需要加入项目
  • readme.rst:说明文件,不需要加入项目

二、控制器Controller

控制器在application文件夹中的controllers文件夹中,默认控制器为welcome,有4小点需要注意:

1、控制器类名不需要加后缀

2、控制器文件名建议小写

3、控制器要直接或间接继承自CI_Controller类

4、可访问的action方法名不能以下划线开头,且访问权限要是public的

三、视图View

视图在application文件夹中的views文件夹中,几个tips:

1、在控制器中用如下代码加载views中的视图:

//加载views文件夹中的user_index.php视图文件
$this -> load -> view(‘user_index‘);

//加载views/user文件夹中的index.php视图文件
$this -> load -> view(‘user/index‘);

2、在视图中,可以直接使用原生的php代码

3、在控制器中可以通过以下方式向视图中输出变量:

<?php
    class User extends CI_Controller {
        public function index() {
            $data = array(
                ‘username‘ => ‘jim‘,
                ‘books‘ => array(
                    ‘a‘, ‘b‘, ‘c‘, ‘d‘
                )
            );

            $head = array(
                ‘title‘ => ‘TITLE‘,
                ‘subtitle‘ => ‘SUB TITLE‘
            );

            $this -> load -> vars(‘data‘, $data);
            //公共部分
            $this -> load -> view(‘header‘);
            $this -> load -> view(‘user/index‘, $head);
        }
    }
?>

在视图中用如下方式获取变量:

<!DOCTYPE html>
<html>
<head>
    <title>User</title>
</head>
<body>
    <h1>User</h1>
    <?php var_dump($data); ?>
    <?php var_dump($title); ?>
</body>
</html>

四、CI的超级对象

CI中的超级对象即为当前的控制器对象。在视图中也可以直接使用$this访问超级对象。

超级对象提供了很多属性:

1、$this -> load ,装载器,主要提供了如下方法:

  • view:装载视图
  • vars:分配变量到视图
  • database:装载数据库操作对象
  • model:装载模型
  • helper:加载帮助文件

2、$this -> uri,解析URL相关内容,主要提供如下方法:

  segment:按索引(控制器为1)获取分段url值(类pathinfo没有key的模式:入口.php/控制器/动作/参数1/参数2。。。),示例如下

  • <?php
        class User extends CI_Controller {
    
            ///index.php/user/index/id/abc/name/god
            public function index($param1, $param2) {
                $param3 = $this -> uri -> segment(5);
                var_dump(array(
                    ‘param1‘ => $param1,
                    ‘param2‘ => $param2,
                    ‘param3‘ => $param3
                ));
                /*
                array (size=3)
                  ‘param1‘ => string ‘id‘ (length=2)
                  ‘param2‘ => string ‘abc‘ (length=3)
                  ‘param3‘ => string ‘name‘ (length=4)
                */
                $this -> load -> view(‘user/index‘);
            }
        }
    ?>

3、$this -> input,主要用于取post和server数据,使用方法如下:

<?php
    class User extends CI_Controller {
        public function index() {
            $username = $this -> input -> post(‘username‘);
            $ip = $this -> input -> server(‘REMOTE_ADDR‘);
            echo $ip;//127.0.0.1
            $this -> load -> view(‘user/index‘);
        }
    }
?>

五、数据库操作

数据配置文件在 application/config/database.php 中。

1、查询示例

<?php
    class User extends CI_Controller {
        public function index() {
            $this -> load -> view(‘user/index‘);
        }

        public function showusers() {
            $this -> load -> database();
            $sql = ‘select * from ci_test‘;
            $res = $this -> db -> query($sql);
            $users = $res -> result();
            var_dump($users);
            /*
            array (size=1)
              0 =>
                object(stdClass)[18]
                  public ‘id‘ => string ‘1‘ (length=1)
                  public ‘name‘ => string ‘jim‘ (length=5)
                  public ‘title‘ => string ‘ci learn‘ (length=8)
            */

            $users2 = $res -> result_array();
            /*
            array (size=1)
              0 =>
                array (size=3)
                  ‘id‘ => string ‘1‘ (length=1)
                  ‘name‘ => string ‘atwal‘ (length=5)
                  ‘title‘ => string ‘ci learn‘ (length=8)
            */
            var_dump($users2);

            $firstUser = $res -> row();
            var_dump($firstUser);
            /*
            object(stdClass)[18]
              public ‘id‘ => string ‘1‘ (length=1)
              public ‘name‘ => string ‘atwal‘ (length=5)
              public ‘title‘ => string ‘ci learn‘ (length=8)
            */
            $this -> load -> view(‘user/show‘);
        }
    }
?>

要先调用 $this -> load -> database()进行装载数据库,然后才能使用 $this -> db 对象。

CodeIgniter学习笔记一

标签:

原文地址:http://www.cnblogs.com/lurenjiashuo/p/ci-note-basic-1.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!