相关疑难解决方法(0)

锂和验证复杂的形式输入 - 如何?

我已经做了相当多的锂教程(的情况下,下面的链接,他们帮助别人,同时也显示出我做我的功课:)我理解创建模型,视图,控制器和使用MVC创造的最基本的部件基于表单输入的DB记录.

但是,我是MVC for webapps和Lithium的新手,我不确定如何在更复杂的情况下编写代码.这是一个普遍的问题,但我有两个具体的验证问题:

  • 我该如何验证表单提交的日期数据?
  • 我该如何检查两个用户电子邮件字段是否具有相同的值?

我非常感谢对这些问题的任何帮助,这样的具体例子也将真正帮助我理解如何在其他情况下做好MVC编码!

日期输入 - 验证跨多个表单输入的数据分割

出于UI原因,注册表单要求用户在三个字段中输入他们的DOB:

<?=$this->form->field('birthday', array('type' => 'select', 'list' => array(/*...*/))); ?>
<?=$this->form->field('birthmonth', array('type' => 'select', 'list' => array(/*...*/))); ?>
<?=$this->form->field('birthyear', array('type' => 'select', 'list' => array(/*...*/))); ?>
Run Code Online (Sandbox Code Playgroud)

验证此服务器端的最佳方法是什么?我想我应该利用自动验证,但我不确定对于一组不属于模型的变量的最佳方法.例如:

  • 我应该张贴-过程$this->request->dataUsersController?例如$this->request->data,UsersController在传递之前修改内部Users::create.
  • 我应该将表单字段拉出来$this->request->data并使用Validator::isDate内部静态调用UsersController吗?
  • 有没有办法在模型中为不属于模型的表单变量组合编写验证规则?
  • 我应该覆盖Users::create并进行所有额外的验证和后期处理吗?

所有这些似乎都可以工作,虽然有些看起来有点难看,我不知道哪些可能会在未来给我带来重大问题.

[编辑:与此密切相关的是将三个表单字段组合到一个字段中以保存在模型中的问题]

电子邮件条目 - 检查两个表单字段是相同的,但只存储一个

对于常识/常规做法,注册表单要求用户指定两次电子邮件地址:

<?=$this->form->field('email_address'); ?>
<?=$this->form->field('verify_email_address'); ?>
Run Code Online (Sandbox Code Playgroud)

如何编写自动验证规则来检查这两个表单字段是否具有相同的值,但只将email_address保存到数据库中?

这感觉就像它几乎与上述一个同样的问题,因为,我能想到的可能答案的列表是相同的 - 所以我提交这是一个问题,但我会很感激你的帮助有两个部分,因为我认为这个解决方案将是微妙的,不同的,同样具有启发性!

[编辑:与此密切相关的是不将verify_email_address存储到我的模型和数据库中的问题]

一些关于锂的背景阅读

我已经读过其他人了,但这三个教程让我到了用户所在的位置并立即注册表单...

关于密切相关主题的其他一些StackOverflow问题(但没有回答它,也没有回答特定于锂的问题)

php validation model-view-controller cakephp lithium

8
推荐指数
1
解决办法
1965
查看次数

在CodeIgniter中格式化数字的位置?

shell我1234.20 => 1'234.20使用php和codeigniter在模型或视图中格式化我的数字?

php codeigniter number-formatting

5
推荐指数
1
解决办法
3395
查看次数