テーブルのないモデルのフィールドを検証する(CakePHP)

StackOverflow https://stackoverflow.com/questions/205447

  •  03-07-2019
  •  | 
  •  

質問

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') );
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top