下面來為標記 arTasks來填充內容,我們需要在資料庫中已經存在相關的記錄。另外得串連上資料庫,通過用WASP的資料模型,了就是用Wrapper類。
代碼:
$oTasks = new TaskWrapper();
$oTasks->findAll();
建立了一個專對於表 Task 的資料操作對象,並且查詢出所有存在的記錄。
現在可以用下面的代碼來迴圈輸出值:
while($oTasks->next())
next()方法將會在沒有記錄時返回false
在迴圈的過程中,用一個數組來儲存值,以便下一步的顯示輸出:
$arTasks[$oTasks->getId()] = $oTasks->toArray();
這段代碼使用了一個內建函數getID來得到資料表中的主鍵。回想一下我們建立資料表時,我們在欄位TaskId上建立一個主鍵,這樣getI在就會得到欄位TaskId的值。利用這個主鍵,可以把從資料庫中取得的當前數組賦值可以傳對象Wrapper。內建函數toArray()會以數組的行式返回當前資料庫中的資料。例如:這個數組會像下面的一樣:
{ 'TaskId' = '1' , 'Name'=>'Buy Groceries'}
視圖代碼並不關心 TaskId 欄位,但是應該注意: 標記{task[Name]} 在頁面上顯示的是資料表中欄位名為Name的值。
在這裡沒有form表單,也不就需要使用 handleEvents()方法。
到現在已經完成了對顯示頁面中的工作清單輸出的代碼編寫。如果在資料庫中沒有存在相應的資料,那麼在頁面上面將不會有任務輸出,因為arTasks是空的,所以模版中的程式碼片段:
{task[Name]} - {task[Due]}
將不會有輸出。
一旦通過頁面 Todo/Entry/ 輸入第一條資料, flexy:foreach 也就有了迴圈的值,清單項目將會顯示。
圖:
如果輸入更多的資料,那麼將會有更多的頂目顯示:
圖:
結束語
到這裡就完成了一個工作清單的小程式,我們可以添加和查看任務。當做這隻是一個很簡單的便子,如果要做更強大的功能,要更多的功能,設計更好多的頁面,將會有更多的工作要做。但是幸運的,HTML代碼全部是在視圖層裡面,我們可以任意的修改模版,而不用擔心PHP代碼。
總結
像模版和DB_DataObjects資料庫物件目前都已經在PHP上面使用,但是沒有一個應用於產品的統一標準。隨著PHP中物件導向功能的加強,使用WASP進行PHP開發是很方便的。希望我們可以使用WASP來開發出更多的,更好的,動態網站。有關WASP的詳細資料,請查閱: WASP documenttation.
http://www.bkjia.com/PHPjc/631055.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631055.htmlTechArticle下面來為標記 arTasks來填充內容,我們需要在資料庫中已經存在相關的記錄。另外得串連上資料庫,通過用WASP的資料模型,了就是用Wrapper類...