
通过在模型中执行getForm()方法可以获得一个JForm对象,这个JForm对象可以产生一个用于编辑的表单。本节简要的讨论一下getForm的执行流程。
在模型类的getForm方法的执行流程有一些难以理解,因为有一些方法继承自父类。一般用户的模型都派生自JModelAdmin,这个类扩展自JModelForm,而JModelForm类派送自JModel.
getForm 方法的执行主要经过3个过程,第一个是loadFormData(),然后是preprocessForm(),最后就是 bind().loadForm()方法和preprocessForm()方法是在JModelForm中实现,bind()方法是在JForm中实 现。
下面看一下一般在模型中加载form的代码:
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_content.article', 'article', array('control' => 'jform', 'load_data' => $loadData));
if (empty($form))
{
return false;
}
第二行中就调用了父类(JModelForm)的loadForm方法.这个方法需要3个参数,第一个是名称,在本例中的值为com_content.article.第二个是资源,也就是具体加载哪一个XML form.第三个是一个可选的数组。
评论 (0)