2013-04-25 15 views
5

Bu kodu vardır: hataya neden olanCakephp ClassRegistry :: init

$userObj = ClassRegistry::init('User'); 
$userObj->contain(); 
$conditions = "User.studio_id = '".$studioID."' AND User.usergroup_id = 5"; 
$studioAdmin = $userObj->find($conditions); 

birini bu çizgidir: Ben, bu bir şey veya herhangi bir hata yazdırmıyor demek

$studioAdmin = $userObj->find($conditions); 

hata uyarısı, sadece aşağıdaki kodu durdurur, ben bir fark ettim çünkü bu bir echo üstünde bir kod, o basar, ancak echo altında bir kod deneyin, o bir şey yazdırmaz,

Burada sorun nedir? Yardımınız çok takdir edilecek! Teşekkürler! :)

cevap

0

Bunu yapması gereken:

$studioAdmin = $userObj->find('all', array('conditions' => $conditions)); 

PHP hata mesajı açık var mı? Belirli bir hatanın ne olduğunu görmek için günlüklerinizi kontrol ettiniz mi? bileşenlerindeki yükleme modellerinin

$conditions = array(
       "User.studio_id" => $studioID, 
       "User.usergroup_id" => 5" 
      ); 
+0

içindünya yapmaya çalışıyor musun? Bu modeli başlatmaya nerede çalışıyorsunuz? – PinoyStackOverflower

+0

ne üzerinde (üye işlev getController çağır): Hata:

$this->Controller->loadModel('Modelname'); $this->Modelname->save($data); 

ve ayrıca tek, bana böyle bir hata verdi çalıştığımızda bulmak koşulu

$users = $this->Modelname->find('all', array( 'conditions' => array( 'User.studio_id' => $studioID, 'User.usergroup_id' => 5 ) )); 

+0

Yaptığınız şey hakkında daha iyi bir fikir edinmek için tüm kontrol cihazınızı veya modelinizi veya bu modeli başlatmaya çalıştığınız her yeri görmem gerekiyor. –

2

iyi uygulama yolu denetleyicisi üzerinden gitmektir ve kullanımı loadModel()

:

Ayrıca, kek standartlarına göre, koşullar fıkra bu şekilde inşa etmek daha iyidir senin bileşeninde

initialize()

function initialize($controller, $settings) { 
    $this->Controller =& $controller; 
} 

Sonra bileşen işlevi, modeli yükleme loadModel kullanmak kurmak

Nesne olmayan bir
+0

Modeli, kontrolör üzerinden yüklerseniz, bileşende mevcut değildir, ancak kontrolörde tekrar! – mark

+1

@liyacat: Yanlışsınız. Eğer '$ this-> Controller-> loadModel (' Modelname ')' i yapıyorsanız, o modele erişmek için '$ this-> Controller-> Modelname-> find ('...') yapacaksınız. ; 'Yönteminiz bir hataya neden olur, çünkü nesne olmayan bir özellik/yöntem çağırmaya çalışıyorsunuz. –