2011-05-07 56 views
7

我想知道如何使用數據從模型B,而我驗證模型A,在這裏檢查輸入的銀行編號是否是正確的:CakePHP:在其他模型/在app_model.php訪問模型驗證銀行編號

我的用戶在註冊時指定了他們的銀行帳戶。例如。 「銀行號碼」。我在我的user.php的模型驗證這種正常的方式

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

現在我想知道,如果輸入的Banknumber是一個真實的,所以我在我的數據庫表中「銀行」與所有真正Banknumbers,我正在使用一些我在app_model.php中指定的驗證函數。

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

但是這是從來沒有工作,因爲當我確認用戶的模式,我只能用這一個在app_model - 功能,與這個 - $>名左右......一個$訪問它這 - >銀行是不可能的,我得到:

未定義的屬性:用戶:: $銀行[APP \ app_model.php

調用一個成員函數findByBanknumber()一個非對象

有沒有辦法導入/訪問app_model.php函數中的其他模型?

謝謝!

回答

2

你可以導入你的模型,創建它的實例,只要你喜歡使用它:

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

難以置信,很容易,非常感謝你! – Bob 2011-05-07 14:42:14

24

ClassRegistry一般應用來代替AppImport作爲AppImport只加載該文件,而不是正確地對其進行註冊,蛋糕樣式。

使用上面的示例。

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