Convalida campo nel modello senza tabella (CakePHP)
Domanda
Ho un modello in CakePHP che non ha una tabella, chiamato Upload. Ho una convalida in questo modello per un campo chiamato source_id.
Ho un modulo che crea un $ this-data dall'aspetto gradevole, offrendomi un set ben strutturato, tra cui:
$this->data['Upload']['source_id']
Tuttavia, la regola di convalida che ho impostato non sembra funzionare affatto. Ho copiato questa regola di convalida da un altro modello in cui funziona, quindi sono sicuro che funzioni:
var $validate = array(
'source_id' => array(
rule' => 'numeric',
'required' => true,
'allowEmpty' => false,
'message' => 'Error!.'
)
);
Non è possibile convalidare i campi per un modello privo di una tabella del database?
Il modulo utilizza il modello di caricamento e invia a un altro metodo di azione del controller.
CakePHP 1.2, PHP / MySQL 5, XAMPP.
Soluzione
Sono stupido. Devi attivare un controllo di convalida, con save () o
$this->Upload->set($this->data);
$this->Upload->validates();
Ora funziona.
Altri suggerimenti
Puoi anche fingere la struttura del database impostando l'array $ _schema, in questo modo:
var $useTable = false;
var Puoi anche fingere la struttura del database impostando l'array $ _schema, in questo modo:
<*>schema = array(
'name' =>array('type'=>'string', 'length'=>100),
'email' =>array('type'=>'string', 'length'=>255),
'phone' =>array('type'=>'string', 'length'=>20),
'subject' =>array('type'=>'string', 'length'=>255),
'message' =>array('type'=>'text')
);