TCPDF - Codeigniter - 在控制器中获取数据

时间:2014-07-29 18:38:53

标签: php codeigniter tcpdf

我真的希望有人可以帮助我!

我试图创建一个pdf文件,其中包含我从查询中获得的一些数据,pdf创建者位于控制器中。

这是我的模特:

function assistiti()
{
    $user =  $this->ion_auth->user()->row();
    $userId = $user->id;
    $query = $this->db->get_where('assistiti', array('assistito_da' => $userId));
    return $query->result();
}

我从控制器那里打来电话:

$data['assistiti'] = $this->assistiti_m->assistiti();

在同一个控制器中,我使用foreach循环数据创建pdf文件:

foreach($data as $post){

    $nome = $post->nome;
    $cognome =  $post->cognome;
    $tribunale = $post->tribunale;

    $tbl .= '<tr><td style="border:1px solid #000;text-align:center">'.$nome.'</td>'; 
    $tbl .= '<td style="border:1px solid #000;text-align:center">'.$cognome.'</td>';
    $tbl .= '<td style="border:1px solid #000;text-align:center">'.$tribunale.'</td>    </tr>';

;}

$pdf->writeHTML($tbl_header.$tbl.$tbl_footer , true, false, false, false, '');

显然它确实有效...它给我一个经典的Trying to get property of non-object,我发现返回一些数据的唯一方法就是把数组索引放在那里:

$nome = $post[0]nome;
$cognome =  $post[0]->cognome;
$tribunale = $post[0]->tribunale;

但显然它只返回第一行。

这是$data的print_r:

Array ( [assistiti] => Array ( [0] => stdClass Object ( [id_assistiti] => 1 [nome] =>     Matte [cognome] => Dama [luogo_nascita] => Milano [data_nascita] => 1986-10-01 [residenza]   => Milano [dimora] => Milano [telefono] => 545431453143 [tribunale] => Milano) [1] => stdClass Object ( [id_assistiti] => 2 [nome] => dario [cognome] => vozzi [luogo_nascita] => 0 [data_nascita] => 0000-00-00 [residenza] => pesaro [dimora] => [telefono] => [tribunale] => ancona ) ) )

我怎样才能获得所有条目?

提前谢谢!

2 个答案:

答案 0 :(得分:0)

你有Array of stdClass Objects。您可以按以下方式访问它们:

foreach($data as $post)
{
    foreach($post as $p)
    {
        $tbl .= '<tr><td style="border:1px solid #000;text-align:center">'.$p->nome.'</td>'; 
        $tbl .= '<td style="border:1px solid #000;text-align:center">'.$p->cognome.'</td>';
        $tbl .= '<td style="border:1px solid #000;text-align:center">'.$p->tribunale.'</td>    </tr>';
    }
}

答案 1 :(得分:0)

您将模型查询结果保存在数组$ data中的特定键(assistiti)中,然后在foreach循环中获取整个数组。这样,你必须遍历数组$ data:

中的特定数组
foreach($data['assistiti'] as $post){

    $nome = $post->nome;
    $cognome =  $post->cognome;
    $tribunale = $post->tribunale;

    $tbl .= '<tr><td style="border:1px solid #000;text-align:center">'.$nome.'</td>'; 
    $tbl .= '<td style="border:1px solid #000;text-align:center">'.$cognome.'</td>';
    $tbl .= '<td style="border:1px solid #000;text-align:center">'.$tribunale.'</td>    </tr>';

;}

$pdf->writeHTML($tbl_header.$tbl.$tbl_footer , true, false, false, false, '');