Error exporting to excel

Asked

Viewed 38 times

0

inserir a descrição da imagem aqui

This below is my controller.

 public function atletaExport(AtletaModalidadeRequest $request){


    $alunosModalidade = $this->alunoequipes->alunosModalidadeFase($request->get('modalidade'),$request->get('fase1'), $request->get('municipio'), 
                                                                  $request->get('regional'), $request->get('sexo'), 
                                                                  $request->get('categoria'))->get();
    //dd($alunosModalidade);



    \Excel::create('AtletasModalidades', function ($excel) use ($alunosModalidade) {


        $excel->sheet('New sheet', function ($sheet) use ($alunosModalidade) {

            $sheet->loadView('relatorios.atletaexport')->with('alunosModalidade', $$alunosModalidade);

        });

    })->download('xlsx');

}

Below where he collects the information

    public function atletasModalidade(AtletaModalidadeRequest $request)
{
    $v['title'] = 'Atletas por Modalidade';

    if (Auth::user()->perfil_id == Perfil::ESCOLA) {
        Notification::error('Acesso não permitido.');
        return back()->withInput();
    }

    $fase_id = $request->input('fase1');
    $municipio_id = $request->input('municipio');
    $regional_id = $request->input('regional');

    $modalidade_id = $request->input('modalidade');
    $v['sexo'] = $request->input('sexo');
    $v['categoria'] = $request->input('categoria');

    $v['fase'] = $this->fase->find($fase_id);

    $v['local'] = null;
    $v['municipio'] = false;
    $v['regional'] = false;


    $modalidade = $this->modalidade->find($modalidade_id);
    $v['modalidade'] = $modalidade;

    if($municipio_id != '') {
        $v['local'] = $this->municipio->find($municipio_id);
        $v['municipio'] = true;
    }

    if($regional_id != '') {
        //$v['local'] = $this->regional->find($regional_id);
        $v['regional'] = true;
    }

    $v['municipio_id'] = $municipio_id;
    $v['regional_id'] = $regional_id;




    return view('relatorios.atletasModalidade', $v);

}

here is my query

 public function alunosModalidadeFase ($modalidade_id, $fase_id,$municipio,$regional,$sexo, $categoria)
{

    $alunos = $this->join('equipes','equipes.id','=','aluno_equipe.equipe_id')
        ->join('escolas','escolas.id','=','equipes.escola_id')
        ->join('alunos','alunos.id','=','aluno_equipe.aluno_id')
        ->join('municipios','municipios.id','=','escolas.municipio_id')
        ->join('dirigente_fase', 'dirigente_fase.id','=','equipes.tecnico_id')
        ->leftJoin('dirigentes', 'dirigentes.id', '=','dirigente_fase.dirigente_id')
        ->join('fases', 'fases.id', '=', 'equipes.fase_id')
        ->where('equipes.modalidade_id','=',$modalidade_id)
        ->where('fases.id','=',$fase_id);
    if($sexo)
    {
        $alunos = $alunos->where('equipes.sexo','=',$sexo);
    }

    if($categoria)
    {
        $alunos = $alunos->where('equipes.categoria','=',$categoria);
    }

    if($municipio)
    {
        $alunos = $alunos->where('escolas.municipio_id','=',$municipio);
    }

    if($regional)
    {
        $alunos = $alunos->where('municipios.regional_id','=',$regional);
    }

    $alunos = $alunos->select('alunos.nome','alunos.data_nascimento','alunos.sexo',
                              'equipes.categoria as categoria','escolas.nome as escola','dirigentes.nome as tecnico','municipios.nome as municipio')
        ->orderBy('municipios.nome')
        ->orderBy('escolas.nome')
        ->orderBy('alunos.nome')
        ->get();

    return $alunos;

and finishing my export slide

    <table>
  <thead>
    <tr>
      <th>Nome Aluno</th>
      <th>Data Nasc</th>
      <th>Sexo</th>
      <th>Categoria</th>
      <th>Escola</th>
      <th>Técnico</th>
      <th>Município</th>
    </tr>
  </thead>
    <tbody>
      @foreach ($alunosModalidade as $alunoModalidade)
        <tr>
          <td >{{ $alunoModalidade->nome }}</td>
          <td >{{ $alunoModalidade->data_nascimento }}</td>
          <td >{{ $alunoModalidade->sexo }}</td>
          <td >{{ $alunoModalidade->categoria }}</td>
          <td >{{ $alunoModalidade->escola }}</td>
          <td >{{ $alunoModalidade->tecnico}}</td>
          <td >{{ $alunoModalidade->municipio }}</td>
       </tr>
      @endforeach
    </tbody>
</table>

Step the 6 parameters but still it waits one in the function get().

1 answer

0

It’s a little complicated to understand where the error is. One thing I noticed that is not making sense are the two ->get who are using.

 $alunosModalidade = $this->alunoequipes->alunosModalidadeFase($request->get('modalidade'),$request->get('fase1'), $request->get('municipio'), 
                                                                  $request->get('regional'), $request->get('sexo'), 
                                                                  $request->get('categoria'))->get();

I noticed that here you’re giving a ->get() at the end. E la in its model:

$alunos = $alunos->select('alunos.nome','alunos.data_nascimento','alunos.sexo',
                              'equipes.categoria as categoria','escolas.nome as escola','dirigentes.nome as tecnico','municipios.nome as municipio')
        ->orderBy('municipios.nome')
        ->orderBy('escolas.nome')
        ->orderBy('alunos.nome')
        ->get();

    return $alunos;

You gave another ->get(). In other words, at the end you’re leaving $alunos->get()->get(). Give a reduced in the model function, replaced by $alunos::find(1) and brings a result and turns to Excel. You have to go eliminating code until you find which part is missing.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.