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());    
        }
     }
4

1 回答 1

1

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

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

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

于 2013-04-12T06:24:39.327 回答