我正在使用 Zend 1.11 。我有一个表单,它从用户获取输入并将数据保存到数据库表,工作正常。
但是,我还希望实现允许用户使用Excel工作表将多个记录导入数据库表的功能。我正在使用PHPExcel
库。
目前我的所有表单都在\library\App\Form\
中,其命名约定为ModelNameForm.php
。如何为适合文件上传的模型添加第二个表单?
非常感谢,
西特。
答案 0 :(得分:1)
我有一个类似的布局,但我在表单类中使用静态函数调用来获取特定类型的表单。例如
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
}
答案 1 :(得分:0)
为什么不为模型创建一个属性,您可以在其中保存调用的表单类实例。那么你可以制作一个像模型中的getForm(),以便您可以通过它的名称访问表单。这就是我首先想到的。
答案 2 :(得分:0)
我遇到的解决方案很简单。
我发现很难,因为我第一次使用Zend,虽然我熟悉MVC方法。
我之前使用CakePHP要求开发人员遵循约定,而Zend允许用户形成自己的约定。
我正在处理的Zend应用程序是由我的同事创建的,他使用了自己的表单类命名约定(ModelNameForm.php)让我感到困惑,因为我不确定这个命名约定是Zend的一部分还是表单class可以命名为任何东西。
在访问Zend IRC频道后,我被告知我可以创建另一个表单类和其他表单,并将其命名为我想要的,并在使用它的控制器的功能中指定它。
所以我刚创建了另一个表单类,并在使用它的函数中指定。
然而,在这样做之后我发现创建第二个表单是没有必要的,因为我只有一个字段与第一个表单不同,这可以在第一个表单类中使用if语句。