1.1中增加了表单构建器CForm,对于表单构建器大家总是褒贬不一,有的人认为简化了工作,有的人认为把原来简单的事情复杂化了。个人认为对于构建不需要有复杂界面修饰布局的表单,表单构建器还是不错的选择,这还增加了表单的复用性。
让我们看看代码,CForm是如何工作的:
// action:
$config = array(
'action' => array('site/login'),
'method' => 'post',
'elements' => array(
'username' => array('type' => 'text'),
'password' => array('type' => 'password'),
),
'buttons' => array(
'login' => array('type' => 'submit', 'label' => '登录'),
),
);
$form = new CForm($config, new User);
if ($form->submitted() && $form->validate()) {
//.......
}
$this->render('test', array('form' => $form));
//view:
<div>
<?php echo $form ?>
</div>
我们以后可以把config放在一个单独的配置文件里来管理, 这样整个程序的代码看上要干净很多。
在Yii的表单构建器中并没有提供像Zend Framework里的那样的表单修饰器,所以界面元素比较单一, 如果需要对界面元素做大量修改,我们需要重写render()方法。