Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


apricot:app:transaction

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
apricot:app:transaction [2020/05/15 16:36]
y2sunlight [コントローラベース]
apricot:app:transaction [2020/05/21 10:41] (現在)
y2sunlight [Apricot トランザクション]
行 17: 行 17:
     * [[apricot:app:validation|Apricot バリデーション]]     * [[apricot:app:validation|Apricot バリデーション]]
     * Apricot トランザクション     * Apricot トランザクション
-  * [[apricot:ext:top|Apricot 拡張]]+  * [[apricot:ext:middleware|Apricot 拡張]]
  
 ユーザ登録画面にトランザクションの機能を追加します。トランザクションを作るか否かはアクション毎に設定できるようにします。また、トランザクション機能を追加することによりアクションでスローされる [[apricot:app:top#例外クラス|ApplicationException]] をキャッチして(エラー画面に遷移することなく)入力画面でエラーメッセージを表示できるようになります。アクションでスローされるApplicationException には以下のものがあります。 ユーザ登録画面にトランザクションの機能を追加します。トランザクションを作るか否かはアクション毎に設定できるようにします。また、トランザクション機能を追加することによりアクションでスローされる [[apricot:app:top#例外クラス|ApplicationException]] をキャッチして(エラー画面に遷移することなく)入力画面でエラーメッセージを表示できるようになります。アクションでスローされるApplicationException には以下のものがあります。
行 136: 行 136:
 ===== ユーザコントローラ ===== ===== ユーザコントローラ =====
  
-アクショントランザクションを設定したい場合は、コントローラのコンストラクタで以下のように行います。+アクショントランザクション処理有効にしたい場合は、コントローラのコンストラクタの中Controllerクラスのtransactional()メソッドを使って、以下のようにます。
  
->TODO:+  * **transactional( 'action1', ... );**
  
 {{fa>folder-open-o}} ** /apricot/app/Controllers ** {{fa>folder-open-o}} ** /apricot/app/Controllers **
行 173: 行 173:
 </code> </code>
  
-  * TODO +  * transactional()を使って3つのアクション( ''insert()'', ''update()'', ''delete()'' )のトランザクション処理が有効にるように設定ています。
-  * 記号なしリスト+
  
 \\ \\
行 186: 行 185:
   - 画面B   - 画面B
  
-画面A,B共にrootユーザの編集画面を表示しておきます。+前もって 画面A,B共にrootユーザの編集画面を表示しておきます。
  
 === 画面A === === 画面A ===
-[{{apricot:app:app10.png?nolink}}]+[{{apricot:app:app11.png?nolink}}]
 ■ 備考を変更して[保存]ボタンを押します。 ■ 備考を変更して[保存]ボタンを押します。
  
-[{{apricot:app:app10.png?nolink}}]+[{{apricot:app:app12.png?nolink}}] 
 +■ 正常に保存できます。
  
 \\ \\
  
 === 画面B === === 画面B ===
-[{{apricot:app:app10.png?nolink}}]+[{{apricot:app:app13.png?nolink}}]
 ■ 備考を変更して[保存]ボタンを押します。 ■ 備考を変更して[保存]ボタンを押します。
  
-[{{apricot:app:app10.png?nolink}}] +[{{apricot:app:app14.png?nolink}}] 
-■ TODO+■ 画面表示時点のデータが変更されているので楽観的ロック例外が発生します。
  
 \\ \\
  
apricot/app/transaction.1589528207.txt.gz · 最終更新: 2020/05/15 16:36 by y2sunlight