最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Yii表单生成器不依赖Model
时间:2022-06-25 00:58:56 编辑:袖梨 来源:一聚教程网
我也不知道标题该怎么写才能描述我要说明的问题,意思就是可以放Yii的表单生成器功能更加灵活。
默认的Yii的表单生成器只需要这样就可以了:
代码如下 | 复制代码 |
1 $form = new CForm('application.views.site.loginForm', $model); |
这里的application.views.site.loginForm也可以是配置数组。但是如果$model参数不传的话是会报错的:Fatal error: Call to a member function isAttributeSafe()
比如我要生成一个组表单,但是我不想依赖于model,根据配置就可以生成一组表单该怎么办,
默认生成的表单的label是根据$model->attributes来显示的,所以我做了2件事:
1.继承CFormInputElement覆盖renderLabel方法,将label显示成自己配置的element的label
2.继承CForm覆盖renderElement方法,$element instanceof UCFormInputElement,并覆盖render方法,将Elements和getButtons循环输出
直接上代码:
app/protected/extensions/UCForm.php
代码如下 | 复制代码 |
/** public function render() foreach ($this->getElements() as $element) foreach ($this->getButtons() as $button) $output .= $this->renderEnd(); public function renderElement($element) else return " n" . $element->render() . " n";} else if ($element instanceof CFormButtonElement) return $element->render() . "n"; else return $element->render(); } return ''; } } |
再来个简单的调用示例:
代码如下 | 复制代码 |
/** public function actionIndex() $model = new CFormModel(); } |
相关文章
- 《无限暖暖》天星之羽获得位置介绍 12-20
- 《流放之路2》重铸台解锁方法介绍 12-20
- 《无限暖暖》瞄准那个亮亮的成就怎么做 12-20
- 《无限暖暖》魔气怪终结者完成方法 12-20
- 《无限暖暖》曙光毛团获得位置介绍 12-20
- 《无限暖暖》日光果获得位置介绍 12-20