質問
CakePHPには、Uploadというテーブルを持たないモデルがあります。このモデルには、source_idというフィールドの検証があります。
見栄えの良い$ this-dataを作成するフォームがあり、次のような適切にフォーマットされたセットが提供されます。
$this->data['Upload']['source_id']
ただし、設定した検証ルールはまったく実行されていないようです。この検証ルールは、動作する別のモデルからコピーしたため、動作すると確信しています:
var $validate = array(
'source_id' => array(
rule' => 'numeric',
'required' => true,
'allowEmpty' => false,
'message' => 'Error!.'
)
);
データベーステーブルのないモデルのフィールドを検証できませんか?
フォームはUploadモデルを使用し、別のコントローラーアクションメソッドに送信します。
CakePHP 1.2、PHP / MySQL 5、XAMPP。
解決
私は馬鹿だ。 save()または
で検証チェックをトリガーする必要があります$this->Upload->set($this->data);
$this->Upload->validates();
今作業中。
他のヒント
次のように$ _schema配列を設定して、データベース構造を偽装することもできます。
var $useTable = false;
var 次のように$ _schema配列を設定して、データベース構造を偽装することもできます。
<*>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')
);
所属していません StackOverflow