Php 仅返回最后结果的方法中的Laravel foreach

Php 仅返回最后结果的方法中的Laravel foreach,php,laravel,foreach,jasper-reports,Php,Laravel,Foreach,Jasper Reports,我已经搜索了很多关于这方面的信息,但没有结果。抱歉,如果它是重复的,但我在使用Laravel5.2中的JasperPHP时遇到问题,我需要帮助 我正在尝试生成一个报告(很明显),我正在使用一个foreach方法来获取报告的列表 $results = $this->PessoaRepository->all(); $nomeCompleto = ''; $cpf = ''; foreach($results as $pessoa){ $nomeCompleto = $pesso

我已经搜索了很多关于这方面的信息,但没有结果。抱歉,如果它是重复的,但我在使用Laravel5.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以生成它?

您正在覆盖该值

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

$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();

您正在存储一个变量,因此它将存储最后的结果。可能您需要将其存储为数组或串联字符串。您正在覆盖变量。@SalvadorP。你是第一个有正确答案的人,所以也许可以在下面添加它,以便OP可以接受?作为答案发布,谢谢你的提示。:)是的,事实上现在我可以把所有的物体放在同一条线上。我会尝试不同的方法,但至少这是一个解决方案。谢谢