在没有表的模型中验证字段(CakePHP)

时间:2008-10-15 16:37:47

标签: php cakephp

我在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。

2 个答案:

答案 0 :(得分:10)

我很蠢。您必须使用save()或

触发验证检查
$this->Upload->set($this->data);
$this->Upload->validates();

立即工作。

答案 1 :(得分: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')
);