3

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

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 回答