Laravel foreach in method仅返回最后的结果

时间:2016-08-03 13:54:17

标签: php laravel foreach jasper-reports

我搜索了很多关于这一点但没有结果。很抱歉,如果它重复但我在laravel 5.2中使用JasperPHP时遇到问题,我需要帮助。

我正在尝试生成一个报告(很明显),我正在使用一个带有foreach的方法来获取报告列表。

$results = $this->PessoaRepository->all();
$nomeCompleto = '';
$cpf = '';
foreach($results as $pessoa){
    $nomeCompleto = $pessoa['nome_completo'];
    $cpf = $pessoa['cpf'];
}

$jasper = new JasperPHP();

$jasper->process(
    app_path() . "/Domains/Pessoas/Reports/Pessoa/Pessoas.jrxml",
    false,
    array('pdf', 'rtf', 'xls', 'xlsx', 'docx', 'odt', 'ods', 'pptx', 'csv', 'html', 'xhtml', 'xml', 'jrprint'),
    array('nome_completo' => $nomeCompleto, 'cpf' => $cpf)
    **strong text**)->execute();

当我调用此方法时,一切正常,它会生成文件,但foreach只返回最后的结果。我怎么能解决它或将列表传递给jasperPHP生成它?

1 个答案:

答案 0 :(得分:2)

您正在覆盖该值。

也许这对你有用,或尝试不同的东西,使用数组或其他东西。

$results = $this->PessoaRepository->all();
$nomeCompleto = '';
$cpf = '';
foreach($results as $pessoa){
    $nomeCompleto .= $pessoa['nome_completo'].' '; // not overwrite the var
    $cpf .= $pessoa['cpf'].' ';
}

$jasper = new JasperPHP();

$jasper->process(
    app_path() . "/Domains/Pessoas/Reports/Pessoa/Pessoas.jrxml",
    false,
    array('pdf', 'rtf', 'xls', 'xlsx', 'docx', 'odt', 'ods', 'pptx', 'csv', 'html', 'xhtml', 'xml', 'jrprint'),
    array('nome_completo' => $nomeCompleto, 'cpf' => $cpf)
    **strong text**)->execute();