CakePHP:其他Model/in app_model.php中的访问模型,用于验证Banknumber

Bob*_*Bob 7 php cakephp models cakephp-1.3

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

我的用户在注册期间指定了他们的银行帐户.例如"银行编号".我在user.php模型中验证这是正常的方法

var $validate = array(
    'banknumber' => array(
        'minLength' => array(
            'rule' => array('minLength', 8),
            'message' => '...',
            'required' => true,
        ),
Run Code Online (Sandbox Code Playgroud)

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

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

但这永远不会有效,因为在我验证用户模型时,我只能在app_model函数中使用这个,用$ this-> name访问它... a $ this-> Bank不可能,我得到:

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

在非对象上调用成员函数findByBanknumber()

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

谢谢!

Oli*_*man 24

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

使用上面的例子.

$bnk = ClassRegistry::init('Bank');
$bnk->findByBanknumber($data);
Run Code Online (Sandbox Code Playgroud)


Hea*_*ota 2

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

App::import('model','Bank');
$bnk = new Bank();
$bnk->findByBanknumber($data);
Run Code Online (Sandbox Code Playgroud)