繁体   English   中英

Cake php模型验证无法正常工作

[英]Cake php Model Validation Not Working

我想在表格中插入记录。为此,我有模型,视图和控制器。我的代码中的所有内容均正常运行,但我的验证模型代码未显示任何验证消息。我该怎么办?我在代码下方给出:

我的控制器代码:

    public function send_money()
        {

         $this->layout='agent';
         $this->Agent->create();
         $this->Agent->set($this->data);

           if(empty($this->data) == false)
            {
                //$this->Agent->saveAll($this->data['Agent'], array('validate' => 'only')); //This code Id New
                $this->Agent->saveAll($this->data['Agent']);
                $this->Session->setFlash('Information Added Successfully.');
                $this->redirect('send_money');

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

        }

And My Model Code is :



    App::uses('AppModel', 'Model');
    /**
     * Admin Login Model
     *
     */
     class Agent extends AppModel
     {
        public $name='Agent';
        public $usetables='agents';

        public $validate = array(

         'contact' =>array(
          'rule' => 'notEmpty', // or: array('ruleName', 'param1', 'param2' ...)
          'allowEmpty' => false,
          'message'    => 'Please Enter Contact No.'
        ),
         'name' =>array(
          'rule' => 'notEmpty', // or: array('ruleName', 'param1', 'param2' ...)
          'allowEmpty' => false,
          'message'    => 'Please Enter Name.'
        ),

         'email_add' =>array(
          'rule' => 'email', // or: array('ruleName', 'param1', 'param2' ...)
          'allowEmpty' => false,
          'message'    => 'Please Enter Valid Email.'
        ),
        );

     }

更改:

$this->Form->create('Agents',

$this->Form->create('Agent',

由于您的模型名称是“ Agent而不是“ Agents请参见此处: 模型验证

在控制器中使用此命令:

if($this->Agent->validates($this->data)) {

代替:

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

尝试这个:

 public function send_money()
    {

     $this->layout='agent';
     $this->Agent->create();
     $this->Agent->set($this->data);

       if($this->Agent->saveAll($this->data['Agent'])) {
            $this->Session->setFlash('Information Added Successfully.');
            $this->redirect('send_money');
        }
        else {
            $this->set('errors', $this->Agent->invalidFields());    
        }

    }

注意:要记录错误验证,请使用以下debug($this->Agent->validationErrors);

暂无
暂无

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

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