入力チェックについて

今回は入力チェックについてご説明します。

せん茶請求書の入力チェックは、2種類に分かれています。
 case:1. モデル内で定義した入力チェック
 case:2. モデルを使わない入力チェック

なぜ2つ分かれているのかは後ほどご説明します。
まずは上記「case:1」の場所からご説明したいと思います。

case:1. モデル内で定義した入力チェック

step1.実際の設定
せん茶請求書の大半のフォームの入力チェックがこの項目に含まれています。
設定している場所は
app/modelsにある、多くのphpファイルの中です。
例えば、bill.phpならば、請求書作成時の入力チェックが、company.phpならば、自社設定時の入力チェックとなっています。
それでは、実際の作業を交えながらご説明します。

bill.phpを開くと、上の方(せん茶1.1.1では21行目)に
var $validate
という変数が見つかります。
変数の中には
‘SUBJECT’ => array(
      ”rule0″ => array(‘rule’ => array(‘spaceOnly’),
                 ’message’ => ‘スペース以外も入力してください’
      ),
      ”rule1″ => array(‘rule’ => ‘notEmpty’,
                 ’message’ => ‘件名は必須項目です’
      ),
      ”rule2″ => array(‘rule’ => array(‘maxLengthJP’, 20),
                 ’message’ => ‘件名が長すぎます’
      ),
),
のような、項目が中に入っています。これが入力チェックを設定している箇所となっています。

上記SUBJECTというのが、せん茶請求書の請求書作成時における、「件名」となっています。
rule0の中には(‘rule’ => array(‘spaceOnly’)と設定されています。
この項目は件名にスペースだけが入力された時にエラーにする、という設定です。
‘message’ => ‘スペース以外も入力してください’ ではエラー発生時のメッセージを設定できます。

同様に、notEmptyは何も入力されなかったとき、maxlengthJPは入力文字の最長を決める役割をしています。

step2.独自の入力チェック

上記で説明したルールの他にも多くの入力チェックがあります。
その中の入力チェックは2種類に分けられます。
 1.cakephpで最初から設定されている入力チェック
 2.せん茶請求書の独自の入力チェック

1については、cakephpについてお調べください。
2について、場所をご説明します。
app/plugins/cakeplus/models/behaviors/add_validation_rule.php
です。
このプラグインはオープンソースのプラグインを使用しています。
この中に多くの設定が含まれています。
また、独自の入力チェックを作成したい時も、ここに書きこむことによって、step1での設定が可能となります。
詳しくは、add_validation_rule.phpにて説明されているので、そちらを御覧ください。

case:2. モデルを使わない入力チェック
複数の項目にまたがっての入力をチェックをしなければいけない場合など、cakephpの入力チェックでは実装することが困難だったため、cakephpの入力チェックを使用していない部分があります。
帳票ページの項目欄、自社設定などの電話番号やFAX番号などが、この項目に含まれています。
その設定場所は
app/app_controller.php
となっています。
31行目にfunction item_validation($_param,$_field)という関数があります。
この関数は帳票の項目欄での入力チェックとなっています。
この関数をapp/controllersのそれぞれのコントローラーで使用することにより、入力チェックを実装しています。

変更したいけどcakephpがわからない、という方は、こちらの記事にメッセージを残していただくか、メールにてご質問ください。

カテゴリー: チップ, 抹茶請求書 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*