zf的addElement和createElement区别

转载自: http://www.php100.com/manual/ZendFramework/zend.form.forms.html

在用zend form时, 发现有addElement和createElement两种, 那它们的区别是:

addElement()返回一个zend_form对象, 而不是元素. 这样做允许把多个addElement()方法链接起来.

createElement()返回一个元素, 但是注意的是: createElement()不把元素加到表单上.

在内部(zf的源码), addElement()实际上用createElement()来生成元素后把它加到表单上.

 

addElement()的例子:

<?php
// Using an element instance:
$element = new Zend_Form_Element_Text('foo');
$form->addElement($element);

// Using a factory
// 
// Creates an element of type Zend_Form_Element_Text with the
// name of 'foo':
$form->addElement('text', 'foo');

// Pass label option to the element:
$form->addElement('text', 'foo', array('label' => 'Foo:'));
?>

 

如果, 你只想生成一个元素并不想把它加到表单上(例如,你想利用众多的用表单注册的插件路径,但稍后把这些对象加到子表单上)。createElement() 方法可以完成这些:

<?php
// $username becomes a Zend_Form_Element_Text object:
$username = $form->createElement('text', 'username');
?>
posted on 2012-05-29 00:36  DavidYanXW  阅读(449)  评论(0编辑  收藏  举报