0

ORM からの結果をフィルタリングする方法があるかどうか知りたいです。モデルにカスタム メソッドを作成したいと考えています。たとえば、データベースからの出力をフィルター処理するメソッドです。現時点では、POST からデータをフォームにフィルターしてデータベースに保存することしかできませんが、その逆が必要です。

テーブルに "identification" という値が "8-985-256" のフィールドが 1 つある場合、その値を "08-0985-00256" にする必要があります (余分なゼロを追加する方法について心配する必要はありません。は簡単だ)。

モデルに「format_identification」というカスタム メソッドがあるとします。次に、次のように ORM クラスを使用してデータを取得します。

$user = ORM::factory('user', 1);

識別をエコーし​​たいのですが、正しい形式で:

echo $user->format_identification();

これにより、「08-0985-00256」が出力されます。フィールドの名前を使用すると機能しますが、値の形式は機能しません。

私がやろうとしていることを理解していただければ幸いです。

お時間をいただきありがとうございます。

4

2 に答える 2

1

次のようなパブリック メソッドをModel_Userファイルに追加します。format_identification

<?php defined('SYSPATH') or die('No direct access allowed.');

class Model_User extends ORM {

    public function format_identification() {

        $identification_value = $this->identification;

        // Add the extra zeros to value

        return $identification_value;

    }

}
于 2012-08-31T11:28:46.323 に答える
0

あなたの問題を解決するためのより良い方法があると思います:

class Model_User extends ORM {

    public function __get($column) {
        if($column=='identification'){
         // Do your stuff
        }
        return parent::__get($column);
    }

}
于 2014-03-04T10:24:05.740 に答える