控制器

新建控制器

依据 http://www.example.com/[控制器]/[方法]/[参数] 来新建控制器

[方法]不填则为控制器的index方法

[参数]不填则为默认参数

vim application/controllers/Pages.php


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

class Pages extends CI_Controller
{

    public function view1($page = 'home')
    {
        if (!file_exists(APPPATH . 'views/pages/' . $page . '.php')) {
            show_404();
        }

        $data['title'] = ucfirst($page); 

        $this->load->view('templates/header', $data);  #  $data 传递变量给视图
        $this->load->view('templates/' . $page);  # 此处不用再加$data 视图也能拿到变量
    }
}

创建一个和文件名一样的类,然后继承 CI_Controller 类

创建一个方法,要是需要传递参数,就在方法后面加上参数

载入视图时,要是视图文件的拓展名为.php,那么可以省略拓展名

当一次性载入多个视图的时候,只需在第一个视图传入数据就可以了


视图

新建视图

vim application/views/templates/header.php


<html>
    <head>
        <title>CodeIgniter Tutorial</title>
    </head>
    <body>

        <h1><?php echo $title; ?></h1>
vim application/views/templates/home.php


hello world

现在访问 http://www.example.com/pages/view1

修改默认控制器

修改 application/config/routes.php 文件的 $route['default_controller']


模型

设置数据库参数

修改 application/config/database.php 文件的 $db['default']

新建模型

application/models/News_model.php


<?php
class News_model extends CI_Model {

    public function __construct()
    {
        $this->load->database();
    }
}

创建一个和文件名一样的类,然后加载 CI_Model 类


其它

设置网站的根 URL

修改 application/config/config.php 文件的 $config['base_url']

添加 URL 后缀

修改 application/config/config.php 文件的 $config['url_suffix']

$config['url_suffix'] = '.html'

移除 URL 中的 index.php(nginx)

修改 application/config/config.php 文件的 $config['index_page'],值改为空

location / {
    try_files $uri $uri/ /index.php;
}

修改system 和 application 目录位置

system 和 application 目录都应该放置在 Web 根目录之外,然后修改 index.php 文件中的 $system_path $application_folder 为文件夹新的位置

views 目录要是想保持公开,则可以将其移出 application 目录,并修改 index.php 文件中的 $view_folder 为文件夹新的位置

设置全局常量

application/config/constants.php 文件的最下方自定义添加常量

define('STATIC_URL', 'http://www.example.com');

载入辅助函数

辅助函数需要先载入才能使用

  • 在控制器中手动载入

    $this->load->helper('name');
    name 为辅助函数名
  • 自动载入

修改 application/config/autoload.php 文件的 $autoload['helper']

URL 辅助函数

比较常用,建议自动载入

  • site_url:获取url参数段路径
  • base_url: application/config/config.php 中设置的路径或者根路径
  • redirect():跳转

拓展自定义函数

放在system/core/Common.php里面

Common.php里面的函数将会自动加载,并且可以全局使用

×