3

アップロードと呼ばれる、テーブルを持たない CakePHP のモデルがあります。このモデルでは、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。

4

2 に答える 2

10

私はダムです。save() またはいずれかを使用して、検証チェックをトリガーする必要があります

$this->Upload->set($this->data);
$this->Upload->validates();

現在働いています。

于 2008-10-15T16:42:25.493 に答える
4

次のように $_schema 配列を設定して、データベース構造を偽造することもできます。

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')
);
于 2008-11-18T09:16:08.873 に答える