2012-02-02 108 views
0

我一直在制動我的大腦tryig來弄清楚如何建模這個,而不是去低級php。 所以我有這些模型/表格:我可以使用atk4模型嗎?

學生(id,name)。 程序(id,名稱,開始日期,結束日期,firstpaymentDueDate,qtyOfPeriods,價格)。

我必須將一個學生的申請註冊到一個由幾個月組成的程序中。 所以我想popur一張表: paymentSchedule(id,student_id,dueDate,金額) 由於一個程序可以有多達10個期間,我需要在每個學生應用程序的paymentSchedule中添加自動10條記錄。 我的問題是,如果這可以模擬?

我會使用paymentSchedule記錄付款並將它們插入到交易表中。

感謝您的支持,感謝您開發如此優秀的工具包!

回答

2

簡短的回答:,您可以在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


處理表格,如paymentSchedule是完全不同的 故事。您需要使用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

謝謝你,我 - 不要知道爲什麼 - 試圖做的一切與MVCForm,並沒有考慮一個常規的形式,只是do_insert我的dsql ...你睜開了我的眼睛。謝謝! – mcanedo 2012-02-03 17:18:47

+1

謝謝你,不客氣..我也明白你的夢想..我也在去年12月纔開始嘗試ATK4 ..我瞭解到,絆腳石是我如何把所有這些例子,並結合它用我的腦海中的想法和做一個功能的端到端的應用程序..逐件的例子是好的和有趣的,工作..但把它們放在一起看起來像第一次用戶的迷宮.. :) – 2012-02-04 06:27:08

相關問題