2013-04-25 5 views
5

Ich habe diesen Code:CakePHP Class :: init

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

derjenige, der den Fehler verursacht ist diese Zeile:

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

Wenn ich Fehler sagen, es hat nichts drucken oder eine Warnung des Fehlers, es stoppt nur den Code darunter, bemerkte ich, dass, wenn ich versuche, echo einen Code darüber, es druckt, aber wenn ich versuche, echo einen Code darunter, es druckt nichts,

Was ist das Problem hier. Ihre Hilfe wird sehr geschätzt! Vielen Dank! :)

Antwort

0

sollten Sie dies tun:

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

Haben Sie PHP Störmeldeversand eingeschaltet haben? Haben Sie in Ihren Protokollen nachgesehen, um welchen Fehler es sich handelt?

Auch von Kuchen Standards, ist es besser, Ihre Bedingungen Klausel auf diese Weise zu bauen:

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

Als ich versuchte, dass man es mir einen Fehler wie diese gab: Fehler: Aufruf einer Funktion getController Mitglied() auf einem Nicht-Objekt – PinoyStackOverflower

+0

was auf Erde versuchst du zu tun? Wo versuchst du dieses Modell zu initialisieren? –

+0

Ich müsste Ihren gesamten Controller oder Modell oder wo auch immer Sie dieses Modell einleiten möchten, um eine bessere Vorstellung davon zu bekommen, was Sie tun. –

2

Die bessere Praxis Art der Beladung Modelle in Komponenten ist über den Controller zu gehen, und verwenden Sie loadmodel()

in Ihrer Komponente, richten Sie die initialize()

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

Dann in Ihrer Komponente Funktion verwenden loadmodel das Modell

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

und auch für Fundzustand

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

Wenn Sie das Modell über den Controller laden, ist es nicht in der Komponente verfügbar, aber in der Steuerung wieder! – mark

+1

@liyacat: Sie sind falsch. Wenn du '$ this-> Controller-> loadModel ('Modelname');' tust, um auf dieses Model zuzugreifen, wirst du '$ this-> Controller-> Modelname-> find ('...') ; 'Ihre Methode würde zu einem Fehler führen, weil Sie versuchen, eine Eigenschaft/Methode eines Nicht-Objekts aufzurufen. –