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方法中

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()

還可以這樣寫

$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(

);

從數據庫中獲取數據

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 );
     
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM