为什么Cakephp验证不起作用?

时间:2013-04-12 06:11:52

标签: php cakephp-2.0

我有一个像

这样的输入框
<input id="BreakdownProgName" type="text" required="required" placeholder="customer name" size="50" name="data[Breakdown][prog_name]">

我的模型验证不适用于此代码,但是当我更换上面的代码时 -

<?php echo $this->Form->input('Breakdown.prog_name',array('label'=>false,'div'=>false,'size'=>50,'placeholder'=>"customer name",'type'=>'text')); ?>

那段时间验证工作正常。但我想先使用第一个,并且希望验证与第一个代码完美配合。我该怎么办?

我的控制器代码是

public function qty_breakdown1() 
    {

            $this->layout='common';

        if(empty($this->data) == false)
        {

            if($this->Breakdown->save($this->data))
            {
                //echo "This";
                $this->Session->setFlash('B Added Successfully.', 'default', array('class' => 'oMsg1 oMsgError1'));
                $this->redirect('qty_breakdown');
            }

        }
        else
        {
            $this->set('errors', $this->Breakdown->invalidFields());    
        }
     }

1 个答案:

答案 0 :(得分:1)

无论视图代码如何,POST数据中的字段名称都是正确的,您的验证都应该有效。那是因为验证适用于服务器端。

但是,如果要显示验证错误,则应使用Cake的FormHelper呈现表单元素或手动检查视图文件中的验证错误,并从PHP代码中显示它们。

编辑:请检查API:isFieldError - 检查字段是否有错误 error - 为给定字段呈现格式化错误消息。