2012-02-02 10 views
0

私は、低レベルのPHPを実行する代わりに、これをモデル化する方法を理解するために私の脳のtryigを制動してきました。 私はこれらのモデル/テーブルを持っています:これにatk4モデルを使用することはできますか?

学生(ID、名前)です。 プログラム(ID、名前、開始日、終了日、最初の支払い日時、qtyOfPeriods、価格)。

私は数ヶ月にわたるプログラムに学生の出願を登録する必要があります。 paymentSchedule(id、student_id、dueDate、amount) 1つのプログラムに最大10個の期間があるので、各学生用アプリケーションのpaymentScheduleにauto 10レコードを追加する必要があります。 これはモデル化できるのですか?

支払いの記録を取って取引テーブルに挿入するには、paymentScheduleを使用しないでください。

ご協力いただきありがとうございます。このような優れたツールキットを開発していただきありがとうございます。

答えて

2

短い答え:YES、あなたは基本的にすべてのテーブルが完全に設定しているATK4

でこれをモデル化することができます。

モデルを作成するには、単純にStudent.phpファイルを作成し、 を/ lib/Model /フォルダに配置します。

class Model_Student extends Model_Table { 
    public $entity_code = 'Student'; 

    function init() { 
     parent::init(); 

     $this->addField('name')->caption('Student Name'); 
    } 
} 

あなたが他のテーブルに同じ操作を行うことができます。

Program (id, name, startdate, enddate, firstpaymentDueDate, qtyOfPeriods, price)paymentSchedule (id, student_id, dueDate, amount)

のモデルについての詳細を知るためには、私はあなたがイントロを読むことをお勧め: http://agiletoolkit.org/learn/understand/model/intro


テーブルの処理(など)は異なる ストーリーです。これを行うには、DSQL(動的SQL)が必要です。

Programテーブルが Model_Programというモデルクラスに属していると仮定します。これは、特定のプログラムのためのエントリを取得し、 はその後、支払いスケジュールに挿入

$m = $this->add('Model_Program'); 
$v = $m->dsql() 
    ->field('qtyOfPeriods') 
    ->field('price') 
    ->where('id=',$programid) // specific program 
    ->do_getOne(); 

$m = $this->add('Model_PaymentSched'); 
$r = $m->dsql() 
    ->set('student_id',$studentid) // specific student 
    ->set('amount',$v['price']) 
    ->do_insert(); 

:エントリ取得するには

+0

おかげで、私はすべてをやろうとwhy-知っ-don'tましたMVCForm、および定期的なフォームを考慮していないと単に私のdsqlのdo_insert ...あなたは私の目を開けた。ありがとう! – mcanedo

+1

ありがとうございました。あなたも歓迎です。私もあなたのディルマを理解しています。私はまた、昨年12月にATK4を試し始めました...そして、私はこれらの事例をすべてまとめて、私の頭の中にアイデアを入れて、機能的なエンドツーエンドのアプリケーションを作ってみましょう。ピースバイプの例はいい、面白いですし、働いています。しかし、それらをまとめてみると、初めてのユーザーにとっては迷路のようです –

関連する問題