• CI框架与Thinkphp框架的一些区别


    system             是框架核心

    application        是项目目录

    index.php          是项目入口文件

    其他目录可以删除

    控制器命名规则

     

    控制器不加 Controller 后缀,

    如 user.php 这就是一个控制器

    修改默认控制器和方法

     

    默认控制器是welcome.php,不喜欢可以改掉。

    修改方法如下:

    在 config/routes.php 中

    $route['default_controller'] = 'welcome';

    改为

    $route['default_controller'] = 'index/home';

    为什么不该成“index/index”呢???

    因为CI中的控制器命名中没有后缀,所以index类的index方法会默认为析构方法__construct();

    所以不可以这样搞,如果改成"index/index"则index方法会被调用两次。

    加载视图文件

     

    $this->load->view('index/home');

    这个视图文件放在/application/view/index/home.php

    看到这个文件的后缀了吗?它是一个php文件,不是html文件

    在CI中 view() 方法可以使用多次,也就是可以加载多个模板

    可以这样写:

    1.在 /application/view/index目录下有这样几个模板文件

        header.php

        main.php

        footer.php

    2.在index控制器的home方法中

    1
    2
    3
    4
    5
    6
    public function home(){
        //按顺序加载模板文件
        $this->load->view('index/header');
        $this->load->view('index/main');
        $this->load->view('index/footer');
    }

    给模板分配变量

     

    CI框架中的模板是直接写php代码的,如分配一个hello的变量:

    $this->load->vars('hello','heheheh');

    在模板中直接写 <?php echo $hello;?>变量将变量输出。

    还可以这样:

    $data['hello'] = 'hello xxoo---';

    直接写入关联数组

    $this->load->vars($data);

    在模板中关联数组健名就是模板里的变量名

     <?php echo $hello; ?>

    CI超级对象($this)中的装载器load

     

    文件在system/core/loader.php,被实例化成一个属性

    $this->load 属性是经常用到的,这里有几个常用的方法

        $this->load->view()

        $this->load->vars()

        $this->load->database()

        $this->load->model()

    还可以这样写

    1
    2
    3
    4
    $data['one'] = 'one';
    $data['two'] = array(1,2,3,4,5);
    //加载模板并分配变量
    $this->load->view('user/user',$data);

    获取url中的参数$this->uri

    文件在system/core/URI.php

    如:url为 localhost/CodeIgniter/index.php/index/home

    echo $this->uri->segment(1);

    输出为:index

    还可以这样

    url为:http://localhost/CodeIgniter/index.php/index/home/1

    public function home($id){

    echo $id;

    }

    输出 1

    多个参数同样,只不过顺序有限制

    输入对象 $this->input

    类文件目录同上

        $this->input->post('username');//同$_POST['username'];

        $this->input->server('HTTP_REFERER');//同$_SERVER[HTTP_REFERER'']

        

    $this在视图中也可以使用

    关于数据库的操作

    pdo设置

    在application/config/database.php 中找到并填写成如下:

    $db['default'] = array(

        'dsn'=> 'mysql:host=localhost;dbname=test;port=3306',

        'hostname' => '',

        'username' => 'root',

        'password' => '123456',

        'database' => '',

        'dbdriver' => 'pdo',

    );

    // 设置默认加载的数据库的配置

    $active_group = 'default';

    $query_builder = TRUE;

    // 这个数组可以有多个,不同数据库填写不同数组名称

    $db['default'] = array(

    );

    $db['hello'] = array(

    );

    从数据库中获取数据

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public function home(){
         
        // 1.转载数据库操作类
        $this->load->database('default');//默认为default可以不写
         
        $sql "select id,title from article limit 10";
        // 2.执行sql
        $obj $this->db->query($sql);
         
        // 3.获取结果集
        $data $obj->result();
         
        echo "<pre>";
        var_dump($data);
         
    }
  • 相关阅读:
    C#多线程编程
    div水平垂直居中方法及优缺点
    Socket网络编程(TCP/IP/端口/类)和实例
    LINQ to SQL语句大全
    SQL Server修改表结构后批量更新所有视图
    SQL Server修改表结构后批量更新所有视图
    SQL Server修改表结构后批量更新所有视图
    开源Asp.Net Core小型社区系统DotNetClub
    CkEditor 4.1.3 + CkFinder 2.4
    文本编辑器-->CKEditor+CKFinder使用与配置
  • 原文地址:https://www.cnblogs.com/chinalorin/p/5855688.html
Copyright © 2020-2023  润新知