CakePHP:用于验证银行编号的其他模型/ appmodel.php中的访问模型

时间:2011-05-07 14:02:02

标签: php cakephp cakephp-1.3 models

我想知道在验证模型A时如何使用模型B中的数据,这里检查输入的Banknumber是否是正确的:

我的用户在注册期间指定了银行帐户。例如。 “银行编号”。我在user.php模型

中验证这是正常的方法
var $validate = array(
    'banknumber' => array(
        'minLength' => array(
            'rule' => array('minLength', 8),
            'message' => '...',
            'required' => true,
        ),

现在我想知道输入的Banknumber是否真实,所以我的数据库中有一个表“Banks”,包含所有真正的Banknumbers,我正在使用我在app_model.php中指定的一些自己的验证函数。

function checkBankExists($data) {
    if (!$this->Bank->findByBanknumber($data)) {
        return false;
    } else {
        return true;
    }       
}

但这永远不会有效,因为在我验证用户模型时,我只能在app_model中使用这个 - 函数,用$ this->名称来访问它... a this this-&gt ;银行是不可能的,我得到:

  

未定义的属性:User :: $ Bank [APP \ app_model.php

     

在非对象

上调用成员函数findByBanknumber()

在app_model.php的函数中是否有导入/访问其他模型的方法?

谢谢!

2 个答案:

答案 0 :(得分:24)

通常应该使用ClassRegistry而不是AppImport,因为AppImport只加载文件,而不是正确地注册它,蛋糕样式。

使用上面的例子。

$bnk = ClassRegistry::init('Bank');
$bnk->findByBanknumber($data);

答案 1 :(得分:2)

您可以导入模型,创建模型实例并根据需要使用它:

App::import('model','Bank');
$bnk = new Bank();
$bnk->findByBanknumber($data);