2011-05-07 19 views
7

Model A'yı doğrularken, Model A'yı kullanarak veriyi nasıl kullanabileceğimi merak ediyorum: Burada girilen bir Banknumber'ın doğru olup olmadığını kontrol etmek için:CakePHP: Diğer Modelde Model/app_model.php'de Bankacılık Sayısının Doğrulanması için Model

Benim Kullanıcılar kayıt esnasında kendi Bankaccount belirtin. Örneğin. "banka numarası". Benim User.php modelinde bunun normal şekilde doğrulayarak am

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

Şimdi girilen Banknumber gerçek biri olup olmadığını bilmek istiyorum, bu yüzden tüm gerçek Banknumbers ile benim veritabanında bir tablo "Bankalar" var ve ben app_model.php belirttiğiniz bazı kendi doğrulama fonksiyonları kullanıyorum.

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

Ama Kullanıcı Model doğrulayarak am süre, sadece bir app_model bu birini kullanabilirsiniz, çünkü bu asla çalışıyor - fonksiyon $ this-> ismi ya da öylesine ... bir $ ile erişirken, bu- Banka mümkün değildir>, alıyorum:

Tanımsız özelliği: Kullanıcı :: $ Bankası [APP \ app_model.php

Çağrı olmayan bir nesne üzerinde üye işlev findByBanknumber() için

app_model.php dosyasındaki bir işlevdeki diğer modellerin içeri/dışarı aktarımının herhangi bir yolu var mı?

Teşekkür ederiz! Pastayı AppImport sadece ziyade düzgün kayıt yerine, dosyayı yükler olarak

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

cevap

2

bunun örneğini oluşturmak, modeli içe ve istediğiniz gibi kullanabilirsiniz tarzı.

Yukarıdaki örneği kullanarak.

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

İnanılmaz, çok kolay, çok teşekkürler! – Bob

24

ClassRegistry genellikle yerine AppImport ait kullanılmalıdır: