分享

yii表单 CForm

 哇嘿嘿 2014-09-25
使用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();

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多