Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Objeto da classe Banco de dados não pôde ser convertido em string


O erro parece estar aqui:
echo "<tr><td>".$epreuve->designation."</td>"
    .$module = $this->_db->get('module', array('epreuve_code', '=',

Observe que você não fechou echo com ponto e vírgula, e há um ponto antes de $module , então o PHP está tentando string concat echo string com a classe $module mais a iteração também dentro da concatenação. Você não pode fazer isso.

Faça o seguinte:
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>";
    }

}

Sugestão:

No seu código
foreach($epreuve->results() as $epreuve){

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

Você não deve usar o mesmo nome de variável do que está iterando. Tente mudar para
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:A tabela HTML está um pouco confusa, tentei da melhor maneira entendê-la. Altere-o de acordo com suas necessidades.