まず、モデルクラスを作成し、 Think \ Model Classから継承します。トリガーを実装する方法のサンプルコードは次のとおりです。
namespace app \ model; Think \ Modelを使用してください。 クラスusertriggermodelはモデルを拡張します { //トリガーテーブル名前守るされた$ table = 'user'を設定します。 //トリガーイベントタイプ守るされた$ events = [ 'before_insert'、 'before_update'、 'before_delete'、 ]; // before_insertトリガーイベント守るされた関数beforeinsert($ data) { //トリガー動作しますロジック//例:挿入前の処理動作しますを記録} // before_updateトリガーイベント守る機能beforeupdate($ data) { //動作しますロジックをトリガー} // before_deleteトリガーイベント守るされた関数beforedelete($ data) { //動作しますロジックをトリガー} }
この例では、 3つのトリガーイベントを定義します。モデルクラスで対応するメソッドを上書きすることにより、データベースレコードが挿入、更新、削除されたときに、所定の操作を自動的に実行できます。
実際のビジネスでは、次のコードを介して対応する操作をトリガーするだけが必要です。
$ user = new usertriggermodel(); $ user-> data([[ 'name' => 'John'、 「年齢」=> 20、 ] - > save();
このコードを実行すると、 BeforeInSertメソッドが自動的にトリガーされ、カスタム論理操作を追加できます。
以下は、ストアドプロシージャを作成および呼び出すためのコードの例です。
namespace app \ model; Think \ Modelを使用してください。 クラスuserproceduremodelはモデルを拡張します { //ストアドプロシージャパブリック関数callprocedure()を電話び外す { $ sql = "call user_count()"; $ result = $ this-> query($ sql); $ resultを戻るします。 } }
この例では、 callprocedureメソッドを定義して、ストアドプロシージャuser_count()を実行します。 $ this-> query()メソッドを呼び出すことにより、ストアドプロシージャを実行し、実行結果を返すことができます。
ビジネスコードでは、ストアドプロシージャを呼び出して、次の方法で結果を取得できます。
$ user = new userProcedureModel(); $ result = $ user-> callprocedure();
これにより、ストアドプロシージャを簡単に呼び出して、結果を$ result変数に保存するために、さらに処理できます。