Mysql
 sql >> Database >  >> RDS >> Mysql

Impossibile convertire l'oggetto della classe Database in stringa

L'errore sembra essere qui:

echo "<tr><td>".$epreuve->designation."</td>"
    .$module = $this->_db->get('module', array('epreuve_code', '=',

Nota che non hai chiuso echo con punto e virgola, e c'è un punto prima di $module , quindi PHP sta cercando di stringere concat echo string con la classe $module più l'iterazione anche all'interno della concatenazione. Non puoi farlo.

Procedi come segue:

public function getModule() {
    $epreuve = $this->_db->get('epreuve', array('concour_code', '=', $this->data()->concour_code));

    foreach($epreuve->results() as $epreuve){
        echo "<tr>";
        echo "<td>".$epreuve->designation."</td>";
        $module = $this->_db->get('module', array('epreuve_code', '=', $epreuve->code ));              
        foreach($module->results() as $module){
            echo "<td>".$epreuve->designation."</td>";
        }
        echo "</tr>";
    }

}

Suggerimento:

Sul tuo codice

foreach($epreuve->results() as $epreuve){

E

foreach($module->results() as $module){

Non dovresti usare lo stesso nome di variabile di ciò che stai iterando. Prova a cambiarlo in

public function getModule() {
    $epreuve = $this->_db->get('epreuve', array('concour_code', '=', $this->data()->concour_code));

    foreach($epreuve->results() as $epreu){
        echo "<tr>";
        echo "<td>".$epreu->designation."</td>";
        $module = $this->_db->get('module', array('epreuve_code', '=', $epreu->code ));              
        foreach($module->results() as $mod){
            echo "<td>".$epreu->designation."</td>";
        }
        echo "</tr>";
    }
}

NOTA:La tabella HTML è un po' disordinata, ho cercato di capirla al meglio. Modificalo in base alle tue esigenze.