Validieren Feld in Modell ohne Tabelle (CakePHP)
Frage
Ich habe ein Modell in CakePHP bekam, die nicht eine Tabelle hat, die so genannte Upload. Ich habe für ein Feld namens source_id eine Validierung in diesem Modell bekommt.
Ich habe eine Form bekomme, die ein gut aussehenden $ dieses Datum baut, mir ein gut formated Set enthalten, einschließlich:
$this->data['Upload']['source_id']
Allerdings ist die Gültigkeitsregel I gesetzt haben scheint nicht auf Anhieb funktioniert. Ich kopierte diese Gültigkeitsregel aus einem anderen Modell, wo es funktioniert, also bin ich zuversichtlich, dass es funktioniert:
var $validate = array(
'source_id' => array(
rule' => 'numeric',
'required' => true,
'allowEmpty' => false,
'message' => 'Error!.'
)
);
Können Sie Felder nicht validieren für ein Modell, das eine Datenbanktabelle fehlt?
Das Formular verwendet das Hochladen von Modell und legt an einem anderen Controller-Aktion-Methode.
CakePHP 1.2, PHP / MySQL 5, XAMPP.
Lösung
Ich bin stumm. Sie haben eine Gültigkeitsprüfung auslösen, entweder mit einem save () oder
$this->Upload->set($this->data);
$this->Upload->validates();
Arbeits jetzt.
Andere Tipps
Sie können auch fälschen die Datenbankstruktur durch die $ _schema Array einstellen, etwa so:
var $useTable = false;
var $_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')
);