我正在使用Zend 1.11。我有一個表單,它接受來自用戶的輸入並將數據保存到可正常工作的數據庫表中。如何在Zend PHP框架中爲一個模型實現兩種形式
但是我想要實現的功能允許用戶使用Excel工作表將多個記錄導入到數據庫表中。我正在使用PHPExcel
庫。
目前我所有的表格都在\library\App\Form\
,命名約定爲ModelNameForm.php
。我如何爲容納文件上傳的模型添加第二個表單?
非常感謝,
Sid。
我正在使用Zend 1.11。我有一個表單,它接受來自用戶的輸入並將數據保存到可正常工作的數據庫表中。如何在Zend PHP框架中爲一個模型實現兩種形式
但是我想要實現的功能允許用戶使用Excel工作表將多個記錄導入到數據庫表中。我正在使用PHPExcel
庫。
目前我所有的表格都在\library\App\Form\
,命名約定爲ModelNameForm.php
。我如何爲容納文件上傳的模型添加第二個表單?
非常感謝,
Sid。
我來的解決方案很簡單。
我只發現它很困難,因爲我第一次使用Zend,儘管我熟悉MVC方法。
我之前使用過CakePHP,需要開發人員遵循約定,而Zend允許用戶形成自己的約定。
我正在使用的Zend應用程序是由我的同事創建的,他使用了自己的命名約定來處理表單類(ModelNameForm.php),因爲我不確定這個命名約定是Zend的一部分還是表單類可以被命名爲任何東西。
在訪問Zend IRC頻道後,我被告知我可以創建另一個表單類並將其命名爲任何我想要的名稱,並在使用它的控制器的功能中指定它。
所以我剛剛創建了另一個表單類,並在使用它的函數中指定。
但是在做完這些之後,我發現創建第二個表單並不是必須的,因爲它只有一個字段與第一個表單不同,並且這可以用於在第一個表單類中使用if語句。
爲什麼不爲模型創建一個屬性,您可以在其中保存窗體的名爲的實例。然後你可以製作一個像getForm()在模型中,所以你可以通過它的名字來訪問表單。我首先想到的就是這一點。
我有一個類似的佈局,但我使用表單類中的靜態函數調用來獲取特定類型的表單。例如
class User_Model_Form extends My_Form
{
// All functions can be passed a model to pre-populate the form
// when editing and existing model
public static function getRegisterForm($model = null)
{
// Build and return form here
}
public static function geLoginForm($model = null)
{
// Build and return form here
}
public static function getChangePasswordForm($model = null)
{
// Build and return form here
}
// Etc
}
如果一個模型有很多不同的形式,這種方法很有用。謝謝。 – Sid 2011-02-08 15:09:58