如果在项目里能统一表单的样式布局肯定是最好的了,可能你只需要定义一两个general_form_element.php放在_element 里,view里调用_element(‘general_form’, array(‘form’ => $form)); ?>就可以了
但很多时候表单复杂了,布局改变了你就得去改general_form_element.php,而改了这个文件又会影响其他表单,当你不想为这个特殊的表单创建一个_element,那就手写吧
说明:这不符合 qeephp 的思想,不推荐
View 里这样:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <div id="form"> <form name="loginForm" id="loginForm" action="<?php echo url('default/login')?>" method="post"> <div> <label for="username">Username:</label> <input type="text" name="username" id="username" size="20" value="<?php echo $form['username']->value()?>"?> <?php if (!$form['username']->isValid() && trim(implode('', $form['username']->errorMsg()))): ?> <p class="error"> <?php echo nl2br(h(implode("\n", $form['username']->errorMsg()))); ?> </p> <?php endif;?> </div> <div> <label for="password">Password:</label> <input type="password" name="password" id="password" size="20" value="<?php echo $form['password']->value()?>"?> <?php if (!$form['password']->isValid() && trim(implode('', $form['password']->errorMsg()))): ?> <p class="error"> <?php echo nl2br(h(implode("\n", $form['password']->errorMsg()))); ?> </p> <?php endif;?> </div> </form> </div> |
或者可以用
1 | <?php echo Q::control($element->_ui, $id, $element->attribs()); ?> |
Controller 里这样:
1 2 3 4 5 6 | <?php // 读取YAML配置文件 $form = new QForm(); $config = Helper_YAML::loadCached(Q::ini('app_config/APP_DIR') . '/form/login_form.yaml'); $form->loadFromConfig($config); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php // 无YAML $form = new QForm(); $form->add(QForm::ELEMENT, 'username', array('_ui' => 'textbox')) ->addFilters('trim, strtolower') ->addValidations(array( array('min_length', 6, '密码至少需要5个字符'), array('min_length', 5, '用户名至少需要5个字符'), )); $form->add(QForm::ELEMENT, 'password', array('_ui' => 'password')) ->addFilters('trim') ->addValidations(array( array('is_alnum', '用户名只能使用26个字母和数字'), array('max_length', 30, '密码最多30个字符'), )); $this->_view['form'] = $form; ?> |
皮鞋,你咋不用FleaPHP 呢.哈哈哈
FleaPHP 已经是过去时了,QeePHP 相当于 FleaPHP 2.0