2011-05-07 13 views
7

के सत्यापन के लिए अन्य मॉडल/ऐप_मोडेल.एफ़पी में मॉडल मॉडल एक्सेस करें, मैं सोच रहा हूं कि मॉडल मॉडल को सत्यापित करने के दौरान मैं मॉडल बी से डेटा का उपयोग कैसे कर सकता हूं, यह जांचने के लिए कि कोई दर्ज बैंकनंबर सही है या नहीं:केकपीएचपी: बैंक मॉडल

मेरे उपयोगकर्ता पंजीकरण के दौरान अपने बैंक खाते को निर्दिष्ट करते हैं। जैसे "बैंकनम्बर"। मैं अपने user.php मॉडल में इस सामान्य तरीके से मान्य रहा

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

अब मुझे पता है कि अगर में प्रवेश किया Banknumber एक असली एक है चाहता हूँ, इसलिए मैं सभी वास्तविक Banknumbers के साथ मेरी DB में एक टेबल "बैंकों" मिल गया, और मैं कुछ स्वयं सत्यापन कार्यों का उपयोग कर रहा हूं जो मैं app_model.php में निर्दिष्ट करता हूं।

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

लेकिन यह कभी नहीं, काम कर रहा है क्योंकि जब मैं उपयोगकर्ता के मॉडल को मान्य कर रहा हूँ, मैं सिर्फ एक app_model में इस एक का उपयोग कर सकते हैं - समारोह, $ this-> नाम या तो ... एक $ साथ उस तक पहुंचने में इस-> बैंक संभव नहीं है, मैं:

अपरिभाषित संपत्ति: उपयोगकर्ता :: $ बैंक [एपीपी \ app_model.php

कॉल एक सदस्य समारोह findByBanknumber() एक गैर वस्तु पर करने के लिए

क्या app_model.php में किसी फ़ंक्शन में अन्य मॉडल आयात/एक्सेस करने का कोई तरीका है?

धन्यवाद! केक

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

उत्तर

2

आप अपने मॉडल आयात करते हैं, इसके बारे में उदाहरण बना सकते हैं और इसका इस्तेमाल के रूप में आप की तरह कर सकते हैं अंदाज।

ऊपर दिए गए उदाहरण का उपयोग करना।

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

अविश्वसनीय, इतना आसान, बहुत बहुत धन्यवाद! – Bob

24

ClassRegistry आम तौर पर AppImport के बजाय इस्तेमाल किया जाना चाहिए के रूप में AppImport केवल फाइल लोड, बल्कि इसे ठीक से दर्ज की तुलना में,:

संबंधित मुद्दे