system 是框架核心php
application 是項目目錄html
index.php 是項目入口文件mysql
其餘目錄能夠刪除web
控制器命名規則sql
控制器不加 Controller 後綴,數據庫
如 user.php 這就是一個控制器數組
修改默認控制器和方法php框架
默認控制器是welcome.php,不喜歡能夠改掉。app
修改方法以下:框架
在 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
);
}
|