デシベルだけ使用して別の何も感じない、ThinkPHP5を使用するプロセスでは、私は多くの場合、DBデータベースの操作を使用し、以降のモデル(モデル)に暴露され、その後、モデルベースクラスでも、他の多くを提供して知っている公式サイトをご確認くださいこの方法は、容易に、例えば、改質剤を使用して取得することができる、というようにデータ機能を完了すること。そのため、より強力なモデル、機能TP5公式サイト推奨モデルを。
DBを使用してアレイ形式のデータ形式の点で使用されています。モデル内のオブジェクトの均一な使用。前記対話型データベースは、フォーマット変換器に関する。したがって、同じ状況でモデルわずかに速い方法でデータをDB。したがって特定の選択は、DBのモデルをプログラミングするために使用される個人的な見解の実施形態ThinkPHP5に従って、必須ではありません。時には、プロジェクトをパッケージ化するために、モデリング手法のいくつかは、より適切かもしれない使用しています
1、モデル定義
モデルクラス定義でブログモデル:
<?PHP 名前空間のApp \デモ\モデル、 使用モデル\考えて、 クラスのブログインクルードは、拡張モデル { // 必要に応じて、デフォルトの主キーを自動的に識別が、指定は、プロパティを設定することができます: //保護されたPK = $「UID」; }
データモデルのテーブルを活用し、モデルクラスの命名規則テーブル名テーブルには、例えば、大文字のこぶ、最初の文字を使用して接頭辞の命名法を削除することです:
モデル名 | データテーブル対応規則(データベースを想定は、プレフィックスthink_定義されます) |
---|---|
ユーザー | think_user |
ユーザータイプ | think_user_type |
2、モデルの呼び出し
モデルクラスを使用することができる静的呼び出しまたはインスタンス化コール、例えば、2つの方法では:
// 静的呼び出し $ブログ = :: GETブログ(1); // IDへの条件は、(自動的にメインキーに基づいてチェックすること)である 。//インスタンス生成モデル $ブログ = 新しい新しいブログ(); // 使用Loaderクラスのインスタンス化(シングルトン) $ブログ =ローダーモデル::( 'ブログ' ); // またはヘルパーmodel` `使用して $ブログ( 'ブログ')=モデル。
3、使用してモデルチェンジチェックの削除
お問い合わせ
// クエリ $ブログ = :: GETブログ(2); // IDへの(自動的にメインキーに基づいてチェックすること)という条件である エコー $ブログ - >タイトル; // 出力:phpの実際の $ユーザー = 新しい新しいユーザー(); // クエリ単一のデータ $ユーザー - >( '名前'、 'thinkphp' ) - > (検索); // クエリデータ条件getByxxx()メソッド $ Bolg =ブログ:: getByTitle( 'モデル1' ); エコー $ Bolg - > コンテンツ; // 多基準クエリ、配列は、クエリとして渡すことができます $ Bolg =ブログ:: GET([ 'タイトル' => 'モデル1'、 'コンテンツ' => ' コンテンツモデル2' ]); $ Bolg=ブログ::ここで、([ 'タイトル ' => ' モデル1'、 'コンテンツ' => ' コンテンツモデル2']) - > (検索); エコー $ Bolg - > ; ID // クエリのすべての $ Bolg =ブログ:: すべての(); foreachの($ Bolg AS $キー => $のV ){ エコー $ Vを - >タイトル"<BR>。" ; } $ユーザー = 新しい新しいユーザー(); // クエリデータセット $ユーザー - > WHERE( '名前'、 'thinkphp' ) - >リミット(10 ) - >注文( 'ID'、 'DESC') - >を選択し();
加えます
] ]。もし($のブログ - > SAVEALL($リスト)){ エコー 「ユーザーの追加に成功しました!' ; }
更新
// 更新 $ブログ = 新しい新しいブログ(); $ブログ - > = 24 ID ; $ブログ - >タイトル= '更新モデルの; $ブログ - >著者= 'LHS' ; $ブログ - > publish_time = '1572919302' ; ブログ$ - >コンテンツ= 'コンテンツモデル' ; $ブログ - > isUpdate() - > 保存(); // このメソッドを呼び出して、真の変更isUpdate(デフォルトの更新操作) $ブログ =ブログ:: GET(1 ) ; $ブログ - >タイトル= '更新モデルの; $ブログ - >著者= 'LHS' ; $ブログ - >publish_time = '1553011200'; $ブログ - >コンテンツ= 'コンテンツモデル' ; IF($ブログ - > 保存()){ エコー "正常に更新!" ; }
// このメソッドを使用してデータを追加 $ブログ =ブログ:: GETを(1。;) $ブログ - >タイトル= '追加モデルをGET' ; $ブログ - >著者= 'LHS' ; $ブログ - > publish_time = '1568908800' ; $ブログ - >コンテンツ= 'モデルコンテンツ' ; $ブログ - > ID = nullを。 IF($ブログ - >isUpdate( 偽) - >保存()){ エコー "に成功!" ; }
削除
$のbolg =ブログ::取得(25 )。 $ bolg - > (削除)。 ブログ ::破壊する(26)。
3、リーダ修飾子
リーダーの役割をされているデータの値を取得自動的に処理修飾するとき、データ変換処理の割り当て効果を、自動的に行うことができる、例えば:
<?PHPの 名前空間のApp \デモ\モデルを、 使用モデル\考えて、 クラスコードをインクルードは、拡張モデル { // リーダー の公共 機能 getPublishTimeAttr($値) { リターン DATE( "はYmd H:I"、$値を); } // 全体のための$データオブジェクトを 、公開 機能 getNameAttr($値、$データ) { リターン 'タイトル:'。$データ:[ '名前'] '価格' .. $データ [ '価格' ;] } // 修飾子 パブリック 関数 setPublishTimeAttr($値) { リターン のstrtotime($値); } }
リーダーと修飾子を使用します
公共の 機能読む(){ // リーダー命名方法:取得+プロパティ名(こぶ命名法)のAttr + / * $コードは=コードがGET ::(1); $エコー第三分野-コード> publish_time; //からの場合、getXXXAttrが呼ばれている定義されていない自己定義の出力として エコー$コード- >名前; * / // 追加 $コード = 新しい新しいコードを(); $コードを - >名前= 'アリペイファンド; $コード - >カテゴリ=」経済' ; $コード - >価格=' 161 'に; $コード - > publish_time =' 2019年9月27日「; // 呼び出すsetPublishTimeAttr方法、タイムスタンプに自動的に追加された $コード - > 保存(); }