2017-05-10 4 views
0

Ich habe die folgende Fehlermeldung erhalten: "Schwerwiegender Fehler: Aufruf einer Elementfunktion session_type() auf einem Nicht-Objekt". Angeblich erstelle ich kein Objekt in der Variablen "$ tabsessiontype2". Ich sehe nicht den Grund, warum das Objekt nicht erstellt wird. Danke für deine Hilfe.PHP-Objekt wird nicht erstellt

Hier ist meine TeacherController.php

if(isset($_POST['search']) && $_POST['sessiontype_name']){ 
     $tabsessiontype2=Db::getInstance()->select_session_type2($_POST['sessiontype_name']); 
     if($tabsessiontype2->session_type()=='X'){ 
      $view='teacher.php'; 
     } 
     elseif($tabsessiontype2->session_type()=='XO'){ 
      $view='teacherxo.php'; 
     } 
     elseif($tabsessiontype2->session_type()=='note'){ 
      $view='teachernote.php'; 
     } 
    } 

Dies ist die Funktion Ich nenne:

public function select_session_type2($name_session_type) { 
    $query = "SELECT * FROM session_types WHERE session_types.name_session_type='$name_session_type'"; 
    $result = $this->_db->query($query); 
    $tableau = array(); 
    if ($result->rowcount()!=0) { 
     while ($row = $result->fetch()) {  
      $tableau[] = new Sessiontype($row->code_session_type,$row->name_session_type,$row->quarter_session_type,$row->code_lesson,$row->session_type); 
     } 
    } 
    return $tableau; 
} 

Hier ist die Session Klasse:

class SessionType{ 
    private $_code_session_type; 
    private $_name_session_type; 
    private $_quarter_session_type; 
    private $_code_lesson; 
    private $_session_type; 

public function __construct($code_session_type,$name_session_type, $quarter_session_type, $code_lesson,$session_type){ 
    $this->_code_session_type = $code_session_type; 
    $this->_name_session_type = $name_session_type; 
    $this->_quarter_session_type = $quarter_session_type; 
    $this->_code_lesson = $code_lesson; 
    $this->_session_type = $session_type; 
} 

public function code_session_type(){ 
    return $this->_code_session_type;  
} 

public function name_session_type(){ 
    return $this->_name_session_type; 
} 

public function quarter_session_type(){ 
    return $this->_lastname; 
} 

public function code_lesson(){ 
    return $this->_email_student; 
} 

public function session_type(){ 
    return $this->_session_type; 
} 

}

+0

'$ tabsessiontype2' ist ein Objekt der Klasse' Db' Klasse 'Db' hat bisher keine Methode aufgerufen 'session_type' ist eine Methode der Klasse' SessionType' – RiggsFolly

+0

select_session_type2 soll das Objekt vom Typ 'SessionType' enthalten, dann wird session_type vom Objekt aufgerufen. @RiggsFolly –

+0

Also was macht 'Db: getInstance()' tun und was gibt es zurück – RiggsFolly

Antwort

0

Es sieht aus wie die Funktion select_session_type2 ist ein Feld zurückgibt:

$tableau = array(); 
if ($result->rowcount()!=0) { 
    while ($row = $result->fetch()) {  
     $tableau[] = new Sessiontype($row->code_session_type,$row->name_session_type,$row->quarter_session_type,$row->code_lesson,$row->session_type); 
    } 
} 
return $tableau; 

und Sie erwarten ein Objekt:

$tabsessiontype2=Db::getInstance()->select_session_type2($_POST['sessiontype_name']); 
if($tabsessiontype2->session_type()=='X'){ 
    $view='teacher.php'; 
} 
Verwandte Themen