Mysql
 sql >> Base de données >  >> RDS >> Mysql

L'objet de la classe Database n'a pas pu être converti en chaîne

L'erreur semble être ici :

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

Notez que vous n'avez pas fermé echo avec un point-virgule, et il y a un point avant $module , donc PHP essaie de concaténer la chaîne echo avec la classe $module plus l'itération également à l'intérieur de la concaténation. Vous ne pouvez pas faire ça.

Procédez comme suit :

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

}

Suggestion :

Sur votre code

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

ET

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

Vous ne devez pas utiliser le même nom de variable que celui que vous itérez. Essayez de le changer en

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

REMARQUE :Le tableau HTML est un peu confus, j'ai essayé de le comprendre au mieux. Modifiez-le selon vos besoins.