sql >> Base de Datos >  >> RDS >> Mysql

El objeto de la clase Base de datos no se pudo convertir en una cadena

El error parece estar aquí:

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

Tenga en cuenta que no cerró echo con punto y coma, y ​​hay un punto antes de $module , por lo que PHP está tratando de encadenar la cadena de eco concat con la clase $module más la iteración también dentro de la concatenación. No puedes hacer eso.

Haz lo siguiente:

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>";
    }

}

Sugerencia:

En tu código

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

Y

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

No debe usar el mismo nombre de variable de lo que está iterando. Intenta cambiarlo a

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 tabla HTML es un poco desordenada. Traté de entenderla mejor. Cámbialo según tus necesidades.