简体   繁体   English

为什么Cakephp验证不起作用?

[英]Why Cakephp validation is not working?

i have an input box like 我有一个输入框

<input id="BreakdownProgName" type="text" required="required" placeholder="customer name" size="50" name="data[Breakdown][prog_name]">

My model validation is not working for this code but when i put in replace of above code like below- 我的模型验证不适用于此代码,但是当我替换下面的代码时,

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

That time validation is working perfectly.but i want to use first one and also want validation works perfectly with that first code.What should i do? 那个时间验证工作正常。但是我想使用第一个,也希望验证与第一个代码一起工作。我该怎么办?

My controller code is 我的控制器代码是

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

Your validation should work regardless of the view code provided that field names are correct in POST data. 假设查看POST数据中的字段名称正确,所以无论使用哪种查看代码,您的验证均应起作用。 That's because validation works on server side. 那是因为验证在服务器端起作用。

However if you want to display validation errors you should use Cake's FormHelper to render form elements or manually check for validation errors in view file and display them from PHP code. 但是,如果要显示验证错误,则应使用Cake的FormHelper呈现表单元素,或在视图文件中手动检查验证错误并从PHP代码中显示它们。

Edit: Please check API: isFieldError - checks if field has error and error - renders formatted error message for given field. 编辑:请检查API: isFieldError-检查字段是否有错误和错误 -呈现给定字段的格式化错误消息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM