forms - 将 $html->tagErrorMsg 从 CakePhp 1.1 更新到 1.2

标签 forms validation cakephp cakephp-1.2

我最终将 CakePhp 1.1 升级到 1.2(及更高版本)。

我在表单验证方面遇到问题。 我从文档中了解到,我发现 $html->tagErrorMsg 已弃用,需要更改为 $form->error 。

我在所有位置都执行了此操作,但错误不显示。它们在我的 1.1 版本中运行良好。

这是 .ctp 中的代码

.ctp 曾经是:

<div class="column span-5">
<?php echo $html->input('Account/firstname', array('size' => 20, 'class'=>'span-4 first last txt')); ?>
</div>
<div class="column span-3 last"><span class="my_error"><?php echo $html->tagErrorMsg('Account/firstname', 'Please enter a first name.');?></span></div>
</div>

.ctp 现在是:

<div class="column span-5">
<?php echo $form->input('Account/firstname', array('size' => 20, 'class'=>'span-4 first last txt')); ?>
</div>
<div class="column span-3 last"><span class="my_error"><?php echo $form->error('Account/firstname', 'Please enter a first name.');?></span></div>
</div>

在模型中(account.php): 我将其更改为:

 var $validate = array(
          'firstname' => VALID_NOT_EMPTY,
    );

致:

   var $validate = array(
      'firstname' => 'notEmpty',
);

我做错了什么? 您能否在 1.2 及更高版本中提供一个正确的表单验证示例?

最佳答案

我明白了。 1.1 和 1.2 之间还有一些约定更改

在 Controller 中,我必须添加:

                $this->Account->set($this->data);
            if ($this->Account->validates()) {
                // validated logic
            } else {
                // didn't validate logic
                $errors = $this->Account->validationErrors;
            }

但是,这也没有完全做到这一点。 我还必须删除 ctp 文件中的“Account/”引用。

这是正确的 ctp:

    <div class="column span-5">
<?php echo $form->input('firstname', array('size' => 20, 'class'=>'span-4 first last txt')); ?>
</div>
<div class="column span-3 last"><span class="my_error"><?php echo $form->error('firstname', 'Please enter a first name.');?></span></div>
</div>

事实证明,我的 Controller 也没有使用复数约定命名。所以我也必须添加它才能让我的 $form->create() 正常工作。

 <?php echo $form->create('Account', array('action' => 'register')); ?>

它位于 ctp 中表单的开头而不是

<form action="<?php echo $html->url('/account/register/'); ?>" method="post">

关于forms - 将 $html->tagErrorMsg 从 CakePhp 1.1 更新到 1.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18212001/

相关文章:

php - Blueimp jQuery 文件上传,传递额外的表单数据

PHP 配置文件更新错误 mysql_num_rows

javascript - 如何关闭 Zurb Foundation Abide 实时验证?

java - 如何检查Java字符是否为货币符号

php - yii 验证电话号码的输入数组

php - Cakephp 3自定义密码列以在模型中使用_setPassword方法?

javascript - 有人如何能够发送此消息? (邮件过滤问题)

javascript函数应用程序验证问题

php - PHP (CakePHP) 中的异步处理或消息队列

mysql - Cakephp 2.61 和组合框