CI フレームワークの簡単な使用方法
リリース: 2016-07-28 08:28:57
-
CodeIgniterフレームワーク
-
1、思い出MVC
-
1.1 、M: モデル化、データ提供、データ保存
-
1.2、V: ビュー、フォームの表示のみを担当します form
-
1.3、C: コントローラー、モデルとビューを調整します
- 1.4 、action: アクションはコントローラー内のメソッドであり、
-
-
2、CI MVC
によって使用されます。 -
CI はじめに: CodeIgniter は、MVC 設計パターンに基づいた、軽量かつ強力な php フレームワークです。クラスライブラリの豊富なセットを提供します
-
2.1、アクセスurl使用pathinfo
-
2.2、形式: エントリファイル/コントローラー/アクション(デフォルトのパス情報 形式)
-
2.3、アプリケーション ディレクトリ:
-
ControllersControllers
- モデルモデル
-
ビュー ビュー
-
-
2.4、デフォルトのコントローラはwelcome
-
2.5、デフォルトのアクションはindex
-
2.6、ファイル名はすべて小文字
-
- 3、コントローラー (controller):
-
3.1、サフィックスを追加する必要はなく、クラス名のみを追加します.php
- 3.2 、ファイル名はすべて user.php などの小文字 (大文字のファイル名はブラウザーではサポートされていません)
-
3.3、すべてのコントローラー、直接または間接的に CI_Controller クラスから継承されます。クラス名の文字は大文字です
-
3.4、メソッド名は大文字と小文字が区別されません
-
アクション要件:1.はpublicで始まる必要があります
-
-
2.はアンダースコア(_)で始めることはできません
-
注意!メソッド名がクラス名と同じ場合はコンストラクターメソッド(__construct)
- 4
、view(-
view)とみなします。
4.1- 、コントローラーにビューをロードします:
$this-
->load->view("user_add "); //いいえ、拡張機能 4.2 を追加し、コントローラーにビューをロードします
$this-
->load->view("user) / add”);//拡張子なし 注: $this
->-
load->view(view); を呼び出すことができます。 4.3、ビューでネイティブの
php-
コードを直接使用します4.4、コントローラーで変数を割り当てます:
$this-
->load - >vars("ビュー内の変数名", phpの変数名); $this->
load- -& gt;
vars-
("str",$str);
ビューで使用:- php echo $str;?> 4.5、コントローラーに複数の変数を割り当てます:
- 例: $str="abcd
"; $リスト-
= array
("- id
"=>"- 1"," name"=>"zhangsan","
パスワード- "=>"1234");$data ["str "]= $str; $データ[ "リスト"]
=-
$list; $this-> ;load->
vars-
( $データ) ; フレームワークが自動的に解決しますphp 短いタグ =…?>
-
4.7、推奨使用: phpforeach ($listas $key
- => 属性
- 5.1、$this->load 属性
- 5.1 . 1、ローダークラスシステムのインスタンス/core/Loader.php5.1。
2、- CI_ ader が提供する Lo メソッド
: $this - ->load->view()load view
- $this-> ;load-> vars() ビューに変数を割り当てる$this->load
-> ;-
データベース() データベース操作オブジェクトのロード$this -> load
-> )-
ヘルプオブジェクト $this-> 5.2 、
$これ-
->uri属性
-
5.2.1、ローダークラスのインスタンス system/core/URI.php
- 5.2.2メソッド提供: 、CI_URI:
-
$this->uri->セグメント(n) はURLを取得するために使用されますのnパラメータはコントローラ
1-
を表し、アクションは2を表し、値1は3、値を表します2 は4で表されます…Usage
1-
: エントリファイル/コントローラー/アクション/値1/値2echo $this
->- uri->セグメント(3);//出力値1使用法
2-
:インデックス .php /コントローラー/アクション/6//パラメーターは正しく対応する必要があります
- $id
=-
0){ echo $id;//出力6
}
- 5.3
、-
$this->入力属性5.3
.- 1、ローダークラスシステムメソッドのインスタンス/core/Input.php5.3
.-
2、CI_Inputによって提供されます:
-
$これ
->-
input->post('ユーザー名'); //$_POST["ユーザー名"]; -> ;input -> ;
- server("DOCUMENT_ROOT");//$_SERVER["DOCUMENT_ROOT"]$this-&g t;input- >
サーバー- ("SERVER_ADDR");//サーバー側IP注: ビューでは、$thisを直接使用して、スーパーオブジェクトのプロパティにアクセスできます
-
6、データベース 6.1 にアクセスし、application
/-
config/ データベース
.- php
-
6.2 、データベース操作クラスのロード:
$this- ->
load-
->database(); ロードが成功すると、スーパーオブジェクトのプロパティ (デフォルト) 属性名は db$this->
db-
6.3, $query= $this -& gt;db
- >-
query(
$sql-
);//戻り値はオブジェクト(array_fetch_object)です
$sql =-
$this-> db ->last_query($sql);//最後に実行されたSQL文を表示します6.3 .1
,-
$クエリ= $this-> $list= $query-> $list = $query ->
=- $query->row();//直接オブジェクトであるデータの最初の部分を返します6.7,$row= $ query ->row_array
();-
//配列である最初のデータを返します6.8, $count= $query -> ; num_rows
();-
//結果セット内の行数を返します6.9, $field= $query-> フィールド数
();-
// 要求されたフィールド数を返します 6.10, $count= $query->affected_rows
(); -
//影響を受ける行数を返す 6.11、$id= $query->insert_id
();-
//自己増加するIDを返す 7、データベース内の構成7.1、自動読み込み
db-
: アプリケーションの /config/自動ロード .
php-
中構成:
-
$autoload["libraries"]= array("database");
-
この方法ではは必要ありません$これ ->ロード->データベース();
-
-
7.2、パラメータバインディング
-
$name= $this -> input -> ->post ("pwd");
-
//疑問符を使用してパラメータをバインドします $data[ 0 ]= $name ;
- $data[
- 1]= $pwd;//値を渡すための 2 次元配列$sql
- =" にを ci_user(name,
pwd-
) )の価値観(?,?) ”;//複数の疑問符、インデックス配列を渡す必要があります$bo ol = $this-> 値はブール値です 7.3、テーブルプレフィックス設定は
application-
/config/database.phpで構成されます: ' デフォルト'][' dbprefix']='
ci_-
';
$db-
['デフォルト']['_前']= 'ci_';
-
'; コードでは、テーブルの接頭辞の後に名前を直接記述するだけで、将来プロジェクトのテーブルの接頭辞が変更される場合にのみ変更する必要があります。 $db['default']['dbprefix']='new_
'、コード内: -
ci_ は自動的に行われます new_8、データベース操作 (ARモデル)
-
8.1、構成アプリケーションに置き換えられました/ cinfog/データベース. $active_record = TRUE;
8.2- の
php-
、テーブルプレフィックスを設定した後、 が追加されます自動的に 8.3、検索 (
get-
): $res = $this->db->get ('テーブル名');
/ /結果セットオブジェクトを返します -
$list = $res
->-
result();
//配列を返します、配列は 1 つですobject -
$ list = $res
-> -
) ://データは連想配列を使用します$data["データベースフィールド名"] = value;//$this->input->post("name ");
-
$data["データベースフィールド名"]=value; $res =
$this-
->db -> ;insert("データテーブル名",$data);
//結果のブール値を返します。 -
8.5、modify (update
):-
//データは連想配列を使用します-
$data["データベースフィールド名"]= 値;
//$this->input->post("name");-
$data["データベースフィールド名"]=
value; -
$where = 配列("id" =>" 4 ");
-
$res = $this->db->update("データテーブル名",$data,$where ) ;//return result boolean;
-
8.6、delete(delete):
-
$where = array(" id ”=> ;"4");
-
$res = $this->db->dalete("データテーブル名", $where);//結果のブール値を返す
- 9
、-
ARコヒーレント演算
- 9.1
、-
$res = $this-> ->from("user")//データテーブル名->where ( 「ID
>"
- ,3)//条件
id と >->order_by
- ("id) の間にはスペースが必要です
desc")//並べ替え->limit(3
- ,1)//ページング; 1項目をスキップし、3項目を取ることを意味しますアイテム、 tp の反対->get
- ();//データを取得$list = $res->_array () ;
-
9.2, where() 条件
-
条件記号: ">"、">="、"<"、"<="、"="、 "!="; 条件を指定しない場合、デフォルトは "=" $this-> = $this->db
- ->where ("名前","
- 管理者")->
- get ();//"="
-
9.2.2 、 $res=$this-&gt;db-&gt; );例: $res=
- $this- >db-> スペース2または複数の条件がある場合: を使用します array()9.2.3, $res= $this
- -> get(); 例: $res= $this->db->where( array( "名前
- " 「管理者」 ","id>3" =>"2"))-&g t; get(); 9.2 .4、複雑なクエリ ステートメントでは
- $this->db-> query
- ( $sql,$data ); //疑問符を使用してパラメータをバインドします9.3、join接続クエリ
-
9.3.1、デフォルトは left クエリ (left)
…に参加)
-
$this->db->select("フィールド")
-
- gt;から ("データテーブル名")
-
->join('結合テーブル','結合条件')
-
-> ゲット (); //デフォルトは left クエリ (left
join … on) 例:
-
$this->db->select(“*”)
-
-> から ("ユーザー")
-
->参加('カテゴリー',ユーザー.id= カテゴリ. id)//デフォルトは left query (left
join )
- ->get();
- 9.3.2. join() の 3 番目のオプションのパラメータを使用して接続を選択します: left、right、outer、inner、left。外側、右外側
- 例:
- $this->db->select(“*”)
- ->from(“user”)
- -> join ("category", "user.id = category.id", "left")// 3 番目のパラメータで指定します
->get(); 10. 10.1. コントローラーの拡張 1. application/core に新しいコントローラー (MY_Controller) を作成します。新しいコントローラーは、作成したコントローラーから拡張できます。 例: class MY_Controller extends CI_Controller{ Public function __consreuct(){ Parent::__construct(); //親クラスのコンストラクターを呼び出す //ログイン検証-
//権限の確認 } } 2. welcome.php に作成したコントローラー (MY_Controller) を継承させ、CI_Controller を間接的に継承させます。- 3. application/config/config.php でコントローラーのプレフィックスを変更できます
- $config['
subclass_prefix-
'] = 'MY_'; 11. モデル
- 11.1. モデルファイルの命名: user_model.php、category_model.php、小文字のファイル名
- 推奨: モデルファイル名の接尾辞として _model を使用して、競合を回避します。コントローラーのクラス名が競合しています!
- 11.2. すべてのモデルは CI_Model クラスから直接または間接的に継承します
- 11.3 作成に必要なメソッド: getAll()...
- 11.4。コントローラーモデルの読み込み: $this->load->model("モデルファイル名"); // コントローラーにモデルを読み込むときのエイリアス
- ; load->model ("モデル ファイル名", "エイリアス");
- ロードが成功すると、デフォルトの属性名はモデル ファイル名またはエイリアスになります
- 11.6. コントローラーでモデルを呼び出します。データを取得します: $this->モデル ファイル名->メソッド名();
- 例: $this->load->model("User_model "); //ケースに注意
- $this->User_model->getAll(); //モデルを呼び出してデータを取得
- 11.6.1. コントローラーでモデルを呼び出すそしてデータを取得します: $this->alias->メソッド名() ;
- 例: $this->load->model("User_model","user"); // 注意してください。ケースへ
- $this->user->getAll(); // モデルを呼び出してデータを取得します
- 12. CI
- 12.1のURL関連関数。 $this->load->helper("url");
- 自動読み込みヘルパー関数を設定します:
- $autoload['helper
- '] = array('url)を設定します'); は application/config/autoload.php にあるため、 $this- >load->helper("url");
- ヘルパー関数:
を記述する必要はありません。 - site_url("Controller/Action/Parameters"); // URL とパラメータを処理します
ビューで使用します base_url( ); // Web サイトのルート ディレクトリに戻ります ("ci/"); 13. CI ルーティングと疑似静的、非表示の Index.php エントリ ファイル 13.1、ルーティング設定 -
application/config/routes.php で設定/変更:
$route ['- default_controller
'] = "welcome" //デフォルトのコントローラーはwelcome-
;
13.2、擬似静的設定 は application/config/routes.php/ で設定されます 変更: //通常のマッチング (controller/) $route['- ニュース
/[-
d]{6}/([dw ]+).html']
= 'user/show/$1';http://localhost/CI/index.php/news/201401/caolizhi66.html
はアクションを起こしますニュースのパラメータは user/show/$1 13.3 にルーティングされます。 エントリ ファイルindex.php 13.3.1を非表示にします: LoadModule rewrite_module modules/mod_rewrite.so -
13.3.2. エントリ ファイル統計ディレクトリに、次の内容の .htaccess ファイルを作成します: RewriteEngine on //Enable pseudo-static -
RewriteCond %{ REQUEST_FILENAME} !-d //存在しないディレクトリに一致 RewriteCond %{REQUEST_FILENAME} !-f //存在しないファイルに一致 RewriteRule ^(.*)$index.php /$1 [QSA, PT,L] //ルールを書き直す
この方法では、エントリファイルindex.phpを記述する必要がありません 14. CI でのページネーション $this->load->library('- ページネーション
');-
1 $config['base_url
'] = $url;-
2 / * ページング用の基本 URL
3 a と b のリンク形式を使用する場合、URL は /news/page/ の形式にする必要があります 4リンクが c および d の形式の場合、URL は /news-
5 */
-
6 $config['
- total_rows'] = $total; の形式である必要があります。 //レコードの総数、これについては何も言うことはありません。データベースから取得するレコードの総数です
- 7 $config['per_page'] = $pagesize;ページごとのアイテム数。まあ、これについてはあまり言うことはありません。 。自分で設定してください。デフォルトは 10 です。
-
8 $config['page_query_string'] = TRUE;
-
9 /*パラメータ形式。 true をオンにすると、URL の後に &per_page=3 が自動的に追加されます。 (この per_page はデフォルトのクエリ文字です。もちろん、$config['query_string_segment'] を使用して自分で設定することもできます)
- 10 したがって、c と d の形式は通常、localhost/news になります。 ?&per_page =2 しかし、それはすべて同じであり、問題ではありません。 get の per_page は依然として 3
- 11 */
-
12 $config['first_link'] = 'Homepage';
// 最初のページには
-
13 が表示されます $config['last_link'] = '最後のページ';
// 最後のページには
-
14 が表示されます $config['next_link'] = '次のページ>';
// 次のページには
-
15 が表示されます。 $config['prev_link'] = '<前のページ';
// 前のページは
- 16 を示しています $config['cur_tag_open'] = '<aclass="current"> ';
// 現在のページの開始スタイル
- 17 $config['cur_tag_close'] = '</a> >
- 18 /* 現在のページの終了スタイル。これらは自分で試すことができます。
- 19たとえば、現在のページのページ番号のスタイルを赤いフォントなどで見栄えを良くしたいと考えています。 cssコードをcurrentに追加できますnum_links
- ' ]
= 2;// 現在の接続の前後に表示されるページ番号の数。これは、現在のページがページ 5 であることを意味し、その後、ページ
- 3、4、5、6、7が表示されることを意味します 。 22 $config['uri_segment'
- ]=4 ;23/*これリンク スタイル a) および b) を使用するときにページ数を決定するために使用されます。 24 たとえば、localhost/news/page/3 の uri_segment は 3 に設定する必要があります。 localhost/news/title/page/3 これは 4 に設定する必要があります25 */
-
26 $config
[- '
use_page_numbers - '
]-
= TRUE;27/*これは、a) と b) の違いです。オンにすると、ページにページ数が表示されます。 false はレコード数を示します
以上、CI フレームワークの簡単な使い方を内容も含めて紹介しましたので、PHP チュートリアルに興味のある方の参考になれば幸いです。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31