十四、yii终极表单之CForm
2013-10-12 00:00
148 查看
yii对表单的封装并没有就此结束,在CActiveForm的基础上,再次封装了表单,这个类就是CForm,它代表一个包含指定表单输入的表单对象。
简单的来 CForm把表单分成了 输入元素层(如input 等)和按钮元素层(如 submit button)
那么如何使用CForm来创建一个表单列
controller中
在视图层只需要echo $form就可以生成如下表单
echo $form 对一个对象进行输出 会调用魔术方法__toString
我们看到实际上 他调用的是对象的render()方法,所以echo $form等同于$form->render();
简单的来 CForm把表单分成了 输入元素层(如input 等)和按钮元素层(如 submit button)
那么如何使用CForm来创建一个表单列
controller中
public function actionForm(){ $model = new User; //实例化CForm生成一个表单对象 $form = new CForm($model->getFMConfig(), $model); $this->performAjaxValidation($model); if($form->submitted() && $form->validate()){ // dump($model->attributes); if(!$model->save()){ dump($model->getErrors()); } } $this->render('form',array( 'form'=>$form, )); }user模型中
//返回表单生成器的配置文件 public function getFMConfig(){ return array( // 'title'=>'表单', // 'description'=>'干嘛的', 'showErrorSummary'=>true,//是否显示所有错误 'showErrors'=>true,//是否显示错误 'activeForm'=>array( 'class'=>'CActiveForm', 'id'=>'user-active_form-form', 'enableAjaxValidation'=>true, // 'enableClientValidation'=>true, ), 'elements'=>array( 'username'=>array( 'type'=>'text', 'maxlength'=>32, ), 'city_id'=>array( 'type'=>'dropdownlist', 'prompt'=>'请选择', 'items'=>User::getCitys(), ), ), 'buttons'=>array( 'submit'=>array( 'type'=>'submit', 'label'=>'提交' ) ), ); }views/form.php
<h1>添加用户信息</h1> <div class="form"> <?php echo $form;?> </div>
在视图层只需要echo $form就可以生成如下表单
echo $form 对一个对象进行输出 会调用魔术方法__toString
public function __toString() { return $this->render(); }
我们看到实际上 他调用的是对象的render()方法,所以echo $form等同于$form->render();
相关文章推荐
- Yii框架官方指南系列21——使用表单:使用表单生成器(CForm)
- 对表单form get或post提交数据乱码的终极处理方式
- Yii框架中的form表单
- yii2.0 Activeform表单部分组件使用方法
- Yii框架中的form表单
- yii2.0 Activeform表单部分组件使用方法
- Yii框架form表单用法实例
- YII2.0 Activeform表单组件的使用方法
- yii2.0 Activeform表单部分组件使用方法
- Struts(十四):通用标签-form表单
- yii2.0 Activeform表单部分组件使用方法
- yii 使用cactiveform 创建表单时候遇到的一些验证问题和使用ajax_form时重置验证规则的解决办法
- PHP-Yii框架下提交表单form防止csrf攻击
- YII2.0 Activeform表单组件的使用方法
- yii2.0 Activeform表单部分组件使用方法
- YII2.0之Activeform表单组件用法实例
- Yii框架form表单用法实例
- Yii ActiveForm表单组件使用
- YII2.0 Activeform表单组件的使用方法
- [ActiveForm] -- Yii2.0源码分析之——创建表单(ActiveForm)