【问题标题】:CakePHP: Access Model in other Model / in app_model.php for Validation of BanknumberCakePHP:在其他模型/ app_model.php 中访问模型以验证银行号码
【发布时间】:2011-05-07 14:02:01
【问题描述】:

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

我的用户在注册时指定他们的银行账户。例如。 “银行号码”。我正在我的 user.php 模型中以正常方式验证这一点

var $validate = array(
    'banknumber' => array(
        'minLength' => array(
            'rule' => array('minLength', 8),
            'message' => '...',
            'required' => true,
        ),

现在我想知道输入的银行号码是否是真实的,所以我在我的数据库中获得了一个包含所有真实银行号码的表“银行”,并且我正在使用我在 app_model.php 中指定的一些自己的验证函数。

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

但这永远行不通,因为当我验证用户模型时,我只能在 app_model - 函数中使用它,使用 $this->name 左右访问它... $this->Bank不可能,我明白了:

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

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

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

谢谢!

【问题讨论】:

    标签: php cakephp cakephp-1.3 models


    【解决方案1】:

    一般应该使用 ClassRegistry 而不是 AppImport,因为 AppImport 只加载文件,而不是正确注册它,蛋糕风格。

    使用上面的例子。

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

    【讨论】:

      【解决方案2】:

      您可以导入您的模型,创建它的实例并随意使用它:

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

      【讨论】:

        猜你喜欢
        • 2020-11-29
        • 2019-03-22
        • 2010-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多