Thursday, July 2, 2015

saveMany validation not working correctly

I'm trying to do this With last 2.x CakePHP version, I'm trying to do a upload multiple file form with validations but not working...

DocsController.php (action add)

if ($this->request->is('post')) {      if ($this->Doc->saveMany($this->request->data, array('deep' => true))) {          $this->Session->setFlash(__('Ok'));      } else {          debug($this->Doc->validationErrors); die();          $this->Session->setFlash(__('Error'));      }      $this->redirect($this->referer());  }

add.ctp

<?php  echo $this->Form->create('Doc', array('type' => 'file'));  echo $this->Form->input('files.', array(      'label' => __("New document",true),    'type' => 'file',       'div' => 'input text no',      'multiple' => 'multiple',      'required' => true,  ));  echo $this->Form->end('Upload');  ?>

Doc.php

class Doc extends AppModel {        public $belongsTo = array(          'Project' => array(              'className' => 'Project',              'foreignKey' => 'project_id',          )      );            public $validate = array(          'files' => array(                  'rule' => array('extension', array('pdf')),                  'required' => false,                  'allowEmpty' => true,                  'message' => 'Only pdf files'               ),      );  }

Arrays

This error is OK:

Array  (      [Doc] => Array          (              [files] => Array                  (                      [0] => Array                          (                              [name] => images.jpeg                              [type] => image/jpeg                              [tmp_name] => /private/var/tmp/phpSqerRI                              [error] => 0                              [size] => 5740                          )                    )            )    )    /app/Controller/DocsController.php (line 112)  array(      'Doc' => array(          'files' => array(              (int) 0 => 'Only pdf files'          )      )  )

This is the problem:

Array  (      [Doc] => Array          (              [files] => Array                  (                      [0] => Array                          (                              [name] => 4_54718093804437603.pdf                              [type] => application/pdf                              [tmp_name] => /private/var/tmp/phpCfUUDx                              [error] => 0                              [size] => 1441232                          )                    )            )    )    /app/Controller/DocsController.php (line 112)  array(      'Doc' => array()  )

It's PDF, so OK but validation returns array

Why return array if no broke rules??

Thanks in advance, sorry for my english.

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

No comments: