zend form表单校验失效

gezp 2015-10-13 11:19:20
问题1:提交时校验没有反映
问题2:不知道返回按钮怎么写
以下是代码
<?php

class Oi_Form_User extends Zend_Dojo_Form
{

public function init()
{
/* Form Elements & Other Definitions Here ... */
$this->setMethod('post');

// 登录ID
$username = $this->createElement('TextBox','username');
$username->setLabel('登录名称:');
$username->setRequired(true);
$username->addValidator('stringLength',false,array(5,20));
$username->addErrorMessage('请输入5个以上字母或2~6个以上汉字!');
$this->addElement($username);

// 密码
$pwd = $this->createElement('PasswordTextBox','password');
$pwd->setLabel('密码:');
$pwd->setRequired(true);
$pwd->addValidator('stringLength',false,array(6));
$pwd->addErrorMessage('密码至少有6个字符');
$this->addElement($pwd);

//确认密码
$pwd2 = $this->createElement('PasswordTextBox','password2');
$pwd2->setLabel('确认密码:');
$pwd2->setRequired(true);
$pwd2->addValidator('identical',false,array('token'=>'password'));
$pwd2->addErrorMessage('两次密码不一致!');
$this->addElement($pwd2);

// 性别
$sex = $this->createElement('radio','sex');
$sex->setLabel('性别:');
$sex->addMultiOptions(array('0'=>'女','1'=>'男'));
$this->addElement($sex);

// 生日
$birthday = $this->createElement('DateTextBox','birthday');
$birthday->setLabel('生日:');
$birthday->setRequired(true);
$this->addElement($birthday);

// 是否结婚
$marriage = $this->createElement('Radio','marriage');
$marriage->setLabel('婚姻状况:');
$marriage->addMultiOptions(array('1'=>'是','0'=>'否'));
$this->addElement($marriage);

// 住址
$address = $this->createElement('TextBox','address');
$address->setLabel('住址:');
$address->setRequired(true);
$address->addValidator('stringLength',false,array(5));
$address->addErrorMessage('住址不能为空!');
$this->addElement($address);

// QQ
$qq = $this->createElement('TextBox','qq');
$qq->setLabel('QQ:');
$qq->setRequired(true);
$qq->addValidator('int',false,array(5));
$qq->addErrorMessage('请输入至少5个有效数字!');
$this->addElement($qq);

// 角色
$role = $this->createElement('RadioButton','role');
$role->setLabel('角色:');
$role->addMultiOptions(array('admin'=>'管理员','order'=>'订餐'));
$this->addElement($role);

// 手机
$telephone = $this->createElement('TextBox','telephone');
$telephone->setLabel('手机:');
$telephone->setRequired(true);
$telephone->addValidator('int',false,array(11));
$telephone->addErrorMessage('请输入11位手机号码');
$this->addElement($telephone);

// 座机
$phone = $this->createElement('TextBox','phone');
$phone->setLabel('座机:');
$phone->setRequired(true);
$phone->addValidator('int',false,array(7));
$phone->addErrorMessage('请输入电话号码!');
$this->addElement($phone);

$submit = $this->createElement('SubmitButton','提交');
$this->addElement($submit);

}

controller 如下
public function registerAction()
{
// 初始化Form
$formUser = new Oi_Form_User();
$formUser->removeElement('role');

if($this->getRequest()->isPost()){
if($formUser->isValid($_POST)){
$data = $formUser->getValues();
// 初始化model
$modelUser = new Oi_Model_User();
$userId = $modelUser->createUser($data);
if($userId){
$this->_redirect('/user/');
}
}
}

$this->view->formUser = $formUser;
}
...全文
156 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
gezp 2015-10-13
  • 打赏
  • 举报
回复
第一个问题已经解决,是数字校验的问题,把addValidator('int',false,array(7));中的int字符串换成new Zend_Validate_Int()就好了.但是还是不知道为什么用int字符串不行.
第二个问题有没有人知道阿.我刚接触zend没多长时间,请大家指教
内容概要:本文围绕“考虑用户侧柔性负荷的社区综合能源系统优化调度”展开研究,基于Matlab代码实现,构建了涵盖电、热等多种能源形式耦合的社区级综合能源系统模型。研究重点在于将用户侧具有可调节特性的柔性负荷纳入优化框架,通过建立以经济性和低碳性为目标的优化调度模型,结合YALMIP等优化工具调用Cplex求解器进行求解,在保障用户用能需求的前提下,提升系统对可再生能源的消纳能力,降低综合用能成本,并增强系统运行的灵活性与智能化水平。该研究为社区能源系统的高效、可持续运行提供了可复现的技术方案与仿真验证路径。; 适合人群:具备电力系统、能源系统等相关专业知识基础,熟悉Matlab编程环境与基本优化建模方法的研究生、科研人员及从事能源领域技术研发的工程技术人员。; 使用场景及目标:①用于高校及科研机构开展综合能源系统、需求侧响应、柔性负荷建模等方向的课题研究与算法验证;②为城市社区、产业园区等实际场景的能源管理系统开发提供优化算法支持与案例参考;③帮助研究人员深入掌握多能流协同优化、YALMIP/Cplex应用、日前调度建模及柔性负荷响应机制的代码实现方法。; 阅读建议:建议读者结合提供的Matlab代码实例,逐步搭建并调试仿真模型,重点关注目标函数的设计逻辑、各类物理约束(如功率平衡、设备出力、储能动态等)的数学表达以及柔性负荷参与调度的建模方式,可进一步拓展至不确定性优化、多时间尺度调度等进阶场景进行深化研究。

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧