Undefined variable Laravel error

Asked

Viewed 601 times

-1

I have a management system of football championships, but I’m having problems to display the data of the specific championship, I’ve researched about the error, but I can’t find where is missing the variable call, I appreciate the help! Note: The file list is half over.

Errorexception (E_ERROR) HELP Undefined variable: groups (View: /var/www/vhosts/uppererp.com.br/ligafutsal/app/views/admin/championships/games/list-games.blade.php)

Here is the link, in case you want to follow the error: http://liga.uppererp.com.br/admin/campeonatos/jogos/22

this is the file list-games.blade.php

@extends('admin/template')
@section('content')
          <ol class="breadcrumb">
            <li><a href="{{ URL::route('dashboard') }}">Home</a></li>
            <li><a href="#">Campeonatos</a></li>
            <li class="active">Jogos</li>
          </ol>
          <h1 class="pull-left">Jogos</h1>
          @if($campeonato->id_campeonato == 1)
          <a  target="_blank" href="http://ovre.com.br/liga/REGULAMENTO%20MUNICIPAL%202015.docx" class="btn btn-success pull-right">Download Regulamento</a>
          @endif
        <div class="clearfix"></div>
        @if( Session::has('sucesso') )
            <div class="alert alert-success">
                {{{ Session::get('sucesso') }}}
            </div>
        @endif
        @if( Session::has('warning') )
            <div class="alert alert-warning">
                {{ Session::get('warning') }}
            </div>
        @endif
        @if ( count($errors) > 0)
            <div class="alert alert-danger">
                <strong>Erro: </strong>
                @foreach ($errors->all() as $e)
                   {{ $e }}
                @endforeach
            </div>
        @endif
      <ul class="nav nav-tabs">
        
        @foreach($campeonato->getGrupos as $grupo)
        @if(!isset($nr_divisao) || $grupo->nr_divisao != $nr_divisao)     
        <?php $grupos[] = $grupo->nr_divisao ?>
        <li><a href="#div{{ $grupo->nr_divisao }}" data-toggle="tab">{{ GrupoAdminController::getDivisao($grupo->nr_divisao, $grupo->id_campeonato) }}</a></li>
        @endif
        <?php $nr_divisao = $grupo->nr_divisao; ?>
        @endforeach
        <li><a href="#divCartoes" data-toggle="tab">Listagem Cartões Amarelos</a></li>
        <li><a href="#divRanking" data-toggle="tab">Artilheiros</a></li>
      </ul>
      
      <div class="tab-content">
        <div class="clearfix"></div>
        <hr>
        <div id="divRanking" class="tab-pane">
          <div class="panel panel-default">
            <div class="panel-heading">
              <h3 class="panel-title">Ranking jogadores</h3>
            </div>
            <div class="panel-body">
              <table class="table table-bordered">
                <thead>
                  <tr>
                    <th>Jogador</th>
                    <th>Gols</th>
                  </tr>
                </thead>
                <tbody>
                  <?php $i = 1; ?>
                  @foreach(CampeonatoController::getArtilheiros($campeonato->id_campeonato) as $jogador)
                  <tr>
                    <td>{{{ $jogador->nm_jogador }}} ({{{ JogadorController::getNomeEquipe($jogador->id_jogador, $campeonato->id_campeonato) }}})</td>
                    <td>{{{ $jogador->total_gol }}}</td>
                  </tr>
                  <?php ++$i; ?>
                  @endforeach
                </tbody>
                </table>
              </div>
            </div>
        </div>
        <div id="divCartoes" class="tab-pane">
          <div class="panel panel-default">
            <div class="panel-heading">
              <h3 class="panel-title">Cartões</h3>
            </div>
            <div class="panel-body">
              <table class="table table-bordered">
                <thead>
                  <tr>
                    <th>Jogador</th>
                    <th>Cartões</th>
                  </tr>
                </thead>
                <tbody>
                  <?php $i = 1; ?>
                  @foreach(CampeonatoController::getCartoesCampeonato($campeonato->id_campeonato) as $jogador)
                  <tr>
                    <td>{{{ $jogador->nm_jogador }}} ({{{ JogadorController::getNomeEquipe($jogador->id_jogador, $campeonato->id_campeonato) }}})</td>
                    <td>{{{ $jogador->total_cartao }}}</td>
                  </tr>
                  <?php ++$i; ?>
                  @endforeach
                </tbody>
                </table>
              </div>
            </div>
        </div>
        @foreach($grupos as $divisao)
          <div id="div{{$divisao}}" class="tab-pane">
              <div class="clearfix"></div>
              <hr>

              @if($campeonato->getJogosFinal)
              <div class="panel panel-default">
                <div class="panel-heading">
                  <h3 class="panel-title">Final</h3>
                </div>
                <div class="panel-body">
              @foreach($campeonato->getJogosFinal()->where('nr_divisao', '=', $divisao)->get() as $jogo)
                  <a href="{{{ URL::route('admin-jogo', $jogo->id_jogo) }}}">
                    <div class="col-md-4">
                      <div class="panel panel-default">
                        <div class="panel-heading">
                          <h3 class="panel-title">{{ InputsController::trataData('Y-m-d H:i:s', $jogo->dthr_jogo, 'd/m/Y H:i') }} | {{{ ($jogo->getLocalJogo()->first()) ? $jogo->getLocalJogo()->first()->nome_local : 'SEM LOCAL DEFINIDO' }}} | {{{ ($jogo->getLocalJogo()->first()) ? $jogo->getLocalJogo()->first()->endereco_local : 'SEM LOCAL DEFINIDO' }}}</h3>
                          <hr>
                          {{ ($jogo->flg_wo == 1) ? '<span class="label label-danger">W.O</span>' : '' }}
                          {{ ($jogo->flg_empate == 1) ? '<span class="label label-warning">Empate</span>' : '' }}
                        </div>
                        <div class="panel-body">
                          <div class="col-md-8">{{{ str_limit($jogo->getJogadorHome()->first()->nm_equipe, 18) }}}</div>
                          <div class="col-md-3 pull-right" style="border-left: gray">
                                                        @if($jogo->flg_wo == 1)
                              @if($jogo->id_equipe1 == $jogo->id_vencedor)
                                W
                              @else
                                O
                              @endif
                            @else
                              {{ $jogo->saldo_gols_1 }}
                            @endif

                          </div>
                          <div class="clearfix"></div>
                          <div class="col-md-8">{{{ str_limit($jogo->getJogadorAway()->first()->nm_equipe, 18) }}}</div>
                          <div class="col-md-3 pull-right" style="border-left: gray">
                            @if($jogo->flg_wo == 1)
                              @if($jogo->id_equipe2 == $jogo->id_vencedor)
                                W
                              @else
                                O
                              @endif
                            @else
                              {{ $jogo->saldo_gols_2 }}
                            @endif

                          </div>
                        </div>
                      </div>
                    </div>
                  </a>
              @endforeach
              </div>
              </div>
            @endif



              @if($campeonato->getJogosSemiFinal)
              <div class="panel panel-default">
                <div class="panel-heading">
                  <h3 class="panel-title">Semi-Final</h3>
                </div>
                <div class="panel-body">
              @foreach($campeonato->getJogosSemiFinal()->where('nr_divisao', '=', $divisao)->get() as $jogo)
                  <a href="{{{ URL::route('admin-jogo', $jogo->id_jogo) }}}">
                    <div class="col-md-4">
                      <div class="panel panel-default">
                        <div class="panel-heading">
                          <h3 class="panel-title">{{ InputsController::trataData('Y-m-d H:i:s', $jogo->dthr_jogo, 'd/m/Y H:i') }} | {{{ ($jogo->getLocalJogo()->first()) ? $jogo->getLocalJogo()->first()->nome_local : 'SEM LOCAL DEFINIDO' }}} | {{{ ($jogo->getLocalJogo()->first()) ? $jogo->getLocalJogo()->first()->endereco_local : 'SEM LOCAL DEFINIDO' }}}</h3>
                          <hr>
                          {{ ($jogo->flg_wo == 1) ? '<span class="label label-danger">W.O</span>' : '' }}
                          {{ ($jogo->flg_empate == 1) ? '<span class="label label-warning">Empate</span>' : '' }}
                        </div>
                        <div class="panel-body">
                          <div class="col-md-8">{{{ str_limit($jogo->getJogadorHome()->first()->nm_equipe, 18) }}}</div>
                          <div class="col-md-3 pull-right" style="border-left: gray">
                            @if($jogo->flg_wo == 1)
                              @if($jogo->id_equipe1 == $jogo->id_vencedor)
                                W
                              @else
                                O
                              @endif
                            @else
                              {{ $jogo->saldo_gols_1 }}
                            @endif

                          </div>
                          <div class="clearfix"></div>
                          <div class="col-md-8">{{{ str_limit($jogo->getJogadorAway()->first()->nm_equipe, 18) }}}</div>
                          <div class="col-md-3 pull-right" style="border-left: gray">
                            @if($jogo->flg_wo == 1)
                              @if($jogo->id_equipe2 == $jogo->id_vencedor)
                                W
                              @else
                                O
                              @endif
                            @else
                              {{ $jogo->saldo_gols_2 }}
                            @endif

                          </div>
                        </div>
                      </div>
                    </div>
                  </a>
              @endforeach
              </div>
              </div>
            @endif

              @if($campeonato->getJogosQuartasFinal)
              <div class="panel panel-default">
                <div class="panel-heading">
                  <h3 class="panel-title">Quartas de Final</h3>
                </div>
                <div class="panel-body">
              @foreach($campeonato->getJogosQuartasFinal()->where('nr_divisao', '=', $divisao)->get() as $jogo)
                  <a href="{{{ URL::route('admin-jogo', $jogo->id_jogo) }}}">
                    <div class="col-md-4">
                      <div class="panel panel-default">
                        <div class="panel-heading">
                          <h3 class="panel-title">{{ InputsController::trataData('Y-m-d H:i:s', $jogo->dthr_jogo, 'd/m/Y H:i') }} | {{{ ($jogo->getLocalJogo()->first()) ? $jogo->getLocalJogo()->first()->nome_local : 'SEM LOCAL DEFINIDO' }}} | {{{ ($jogo->getLocalJogo()->first()) ? $jogo->getLocalJogo()->first()->endereco_local : 'SEM LOCAL DEFINIDO' }}}</h3>
                          <hr>
                          {{ ($jogo->flg_wo == 1) ? '<span class="label label-danger">W.O</span>' : '' }}
                          {{ ($jogo->flg_empate == 1) ? '<span class="label label-warning">Empate</span>' : '' }}
                        </div>
                        <div class="panel-body">
                          <div class="col-md-8">{{{ str_limit($jogo->getJogadorHome()->first()->nm_equipe, 18) }}}</div>
                          <div class="col-md-3 pull-right" style="border-left: gray">
                            @if($jogo->flg_wo == 1)
                              @if($jogo->id_equipe1 == $jogo->id_vencedor)
                                W
                              @else
                                O
                              @endif
                            @else
                              {{ $jogo->saldo_gols_1 }}
                            @endif
                          </div>
                          <div class="clearfix"></div>
                          <div class="col-md-8">{{{ str_limit($jogo->getJogadorAway()->first()->nm_equipe, 18) }}}</div>
                          <div class="col-md-3 pull-right" style="border-left: gray">
                            @if($jogo->flg_wo == 1)
                              @if($jogo->id_equipe2 == $jogo->id_vencedor)
                                W
                              @else
                                O
                              @endif
                            @else
                              {{ $jogo->saldo_gols_2 }}
                            @endif

                          </div>
                        </div>
                      </div>
                    </div>
                  </a>
              @endforeach
              </div>
              </div>
            @endif
            <div class="clearfix"></div>
            <hr>


              @if($campeonato->getJogosOitavas)
              <div class="panel panel-default">
                <div class="panel-heading">
                  <h3 class="panel-title">Oitavas de Final</h3>
                </div>
                <div class="panel-body">
              @foreach($campeonato->getJogosOitavas()->where('nr_divisao', '=', $divisao)->get() as $jogo)
                  <a href="{{{ URL::route('admin-jogo', $jogo->id_jogo) }}}">
                    <div class="col-md-4">
                      <div class="panel panel-default">
                        <div class="panel-heading">
                          <h3 class="panel-title">{{ InputsController::trataData('Y-m-d H:i:s', $jogo->dthr_jogo, 'd/m/Y H:i') }} | {{{ ($jogo->getLocalJogo()->first()) ? $jogo->getLocalJogo()->first()->nome_local : 'SEM LOCAL DEFINIDO' }}} | {{{ ($jogo->getLocalJogo()->first()) ? $jogo->getLocalJogo()->first()->endereco_local : 'SEM LOCAL DEFINIDO' }}}</h3>
                          <hr>
                          {{ ($jogo->flg_wo == 1) ? '<span class="label label-danger">W.O</span>' : '' }}
                          {{ ($jogo->flg_empate == 1) ? '<span class="label label-warning">Empate</span>' : '' }}
                        </div>
                        <div class="panel-body">
                          <div class="col-md-8">{{{ str_limit($jogo->getJogadorHome()->first()->nm_equipe, 18) }}}</div>
                          <div class="col-md-3 pull-right" style="border-left: gray">
                            @if($jogo->flg_wo == 1)
                              @if($jogo->id_equipe1 == $jogo->id_vencedor)
                                W
                              @else
                                O
                              @endif
                            @else
                              {{ $jogo->saldo_gols_1 }}
                            @endif
                          </div>
                          <div class="clearfix"></div>
                          <div class="col-md-8">{{{ str_limit($jogo->getJogadorAway()->first()->nm_equipe, 18) }}}</div>
                          <div class="col-md-3 pull-right" style="border-left: gray">
                            @if($jogo->flg_wo == 1)
                              @if($jogo->id_equipe2 == $jogo->id_vencedor)
                                W
                              @else
                                O
                              @endif
                            @else
                              {{ $jogo->saldo_gols_2 }}
                            @endif

                          </div>
                        </div>
                      </div>
                    </div>
                  </a>
              @endforeach
              </div>
              </div>
            @endif
            <div class="clearfix"></div>
            <hr>


            @foreach($campeonato->getGrupos()->where('nr_divisao', '=', $divisao)->get() as $grupo)
              <?php
                $rodadas = '';
              ?>
              <div class="panel panel-default">
                <div class="panel-heading">
                  <h3 class="panel-title">Grupo {{ $grupo->nm_grupo }}</h3>
                </div>
                <div class="panel-body">
                  <table class="table table-bordered table{{$divisao}}">
                    <thead>
                      <tr>
                        <th colspan="2"></th>
                        <th>PG</th>
                        <th>JG</th>
                        <th>V</th>
                        <th>E</th>
                        <th>D</th>
                        <th>GP</th>
                        <th>GC</th>
                        <th>SG</th>
                        <th>IT</th>
                        <th>AV</th>
                      </tr>
                    </thead>

this is the Grupoadmincontroller.php file

<?php

class GrupoAdminController extends BaseController {

	public function listarGeracaoGrupos($id) {

	    $equipe = Equipe::find(Auth::id());

	    $totalJogadores = Jogador::join('transferencias', 'transferencias.id_jogador', '=', 'jogadores.id_jogador')
                                            ->where('transferencias.id_equipe_atual', '=', $equipe->id_equipe)
                                            ->where('flg_aprovado', '=', 1)
                                            ->groupBy('transferencias.id_jogador')
                                            ->orderBy('id_transferencia', 'DESC')
                                            ->count();

       $totalCampeonatosEmAberto = Campeonato::where('dt_inicio_inscricoes', '<=', date('Y-m-d'))
       					   ->where('dt_fim_inscricoes', '>=', date('Y-m-d'))
       					   ->where('flg_ativo', '=', 1)
       					   ->count();


       	$campeonato = Campeonato::find($id);
       	$equipesInscritas = Equipe::select('nm_equipe', 'equipes.id_equipe')
       							->join('inscricoes', 'inscricoes.id_equipe', '=', 'equipes.id_equipe')
       							->where('id_campeonato', '=', $id)
       							->where('inscricoes.flg_ativo', '=', 1)
       							->where('equipes.flg_ativo', '=', 1)
       							->get(); 

	    return View::make('admin/campeonatos/geracao/gerar-grupos')->with(
	    				    array(
	    				        'equipe' => $equipe,
	    				        'totalJogadores' => $totalJogadores,
	    				        'totalCampeonatosEmAberto' => $totalCampeonatosEmAberto,
						        'totalInscricoes' => InscricaoController::getTotalnscricao(),
						        'campeonato' => $campeonato,
						        'equipesInscritas' => $equipesInscritas,
	    				    )
	    				);
	}

	public function gerarGrupos($id) {
		
		$campeonato = Campeonato::find($id);
		$combinatorics = new Math_Combinatorics;

		// Gerando os Grupos e Grupos Equipes
		foreach(Input::get('total_grupos') as $c => $valor) {
			$grupos = range('A', 'Z'); // Definindo o nome dos grupos (A,B,C,D,E,F...)
			if(array_key_exists($c, Input::get('equipe'))) {
					$equipes = Input::get('equipe')[$c];
					$totalG = $valor; // Total de grupos
					$timesPorGrupo = (count(Input::get('equipe')[$c]) / $totalG); //Saber quantos times vão cair por grupo
					$resto = count(Input::get('equipe')[$c]) % $totalG; // Pegando o resto da divisão
					$a = 0;
					$chave = [];
					for($i=1;$i<=$totalG;$i++) {
						if($i == 1) {
							if($resto > 0) {
								$chave[$c][$grupos[$i-1]] = array_slice($equipes,0,$timesPorGrupo+1);
								$resto--;
								$a =  count($chave[$c][$grupos[$i-1]]);
							} else {
								$chave[$c][$grupos[$i-1]] = array_slice($equipes,0,$timesPorGrupo);
								$a = count($chave[$c][$grupos[$i-1]]);
							}
						} else {
							if($resto > 0) {
								$chave[$c][$grupos[$i-1]] = array_slice($equipes,$a,$timesPorGrupo+1);
								$resto--;
								$a += count($chave[$c][$grupos[$i-1]]);
							} else {
								$chave[$c][$grupos[$i-1]] = array_slice($equipes,$a,$timesPorGrupo);
								$a += count($chave[$c][$grupos[$i-1]]);
							}
						}
					}

				// Inserindo os Grupos e Suas Respectivas Equipes
				$divisoes = array('e' => 1, 'p' => 2, 's' => 3, 't' => 4, 'q' => 5);
				foreach($chave as $divisao => $grupos) {
					foreach($grupos as $chave => $equipes) {
						$grupo = new Grupo;
						$grupo->id_campeonato = $campeonato->id_campeonato;
						$grupo->nm_grupo = $chave;
						$grupo->nr_fase = 1;
						$grupo->nr_divisao = $divisoes[$divisao];
						$grupo->save();
						foreach($equipes as $equipe) {
							$grupoEquipe = new GrupoEquipe;
							$grupoEquipe->id_equipe = $equipe;
							$grupoEquipe->id_grupo = $grupo->id_grupo;
							$grupoEquipe->save();
						}
					}
				}

				// Salvando o Andamento do Campeonato
				$campeonato->flg_andamento = 1; // Grupos Gerados
				$campeonato->save();

			}
		}

		return Redirect::to(URL::route('gerenciar-grupos', $campeonato->id_campeonato));
	}

	public function gerarJogos($id) {

		$campeonato = Campeonato::find($id);
		$combinatorics = new Math_Combinatorics;

		// Gerando os jogos
		foreach($campeonato->getGrupos as $grupo) {
			foreach($grupo->getEquipes as $equipe) {
				$g[$grupo->id_grupo][] = $equipe->id_equipe;
			}
		}

		foreach($g as $idGrupo => $arrayEquipes) {
			$combinations[$idGrupo][] = $combinatorics->combinations($arrayEquipes, 2);
		}

		foreach($combinations as $grupo => $jogos) {
			$grupo = Grupo::find($grupo);
			foreach($jogos[0] as $eqs) {
				reset($eqs);
				$eq1 = $eqs[key($eqs)];
				
				end($eqs);
				$eq2 = $eqs[key($eqs)];

				$jogo = new Jogo;
				$jogo->id_campeonato = $campeonato->id_campeonato;
				$jogo->id_equipe1 = $eq1;
				$jogo->id_equipe2 = $eq2;
				$jogo->id_grupo = $grupo->id_grupo;
				$jogo->flg_tp_jogo = 1;
				$jogo->flg_ativo = 1;
				$jogo->save();
			}
		}

		$campeonato->flg_andamento = 2; // Jogos Gerados
		$campeonato->save();

		return Redirect::to(URL::route('gerar-rodadas', $campeonato->id_campeonato))->with(array('sucesso' => 'Grupos gerados com sucesso!'));
	}

	static public function getDivisao($divisao, $campeonato) {
		
		$campeonato = Campeonato::find($campeonato);


		if($campeonato->flg_tp_campeonato != 1 && $campeonato->flg_tp_campeonato != 2) {
			return '-';
		}

		switch ($divisao) {
			case 1:
				return 'Especial';
				break;
			
			case 2:
				return 'Primeira Divisão';
				break;

			case 3:
				return 'Segunda Divisão';
				break;

			case 4:
				return 'Terceira Divisão';
				break;

			case 5:
				return 'Quarta Divisão';
				break;
		}
	}

	public function gerenciarGrupos($id) {

		$campeonato = Campeonato::find($id);
		$equipe = Equipe::find(Auth::id());

	    $totalJogadores = Jogador::join('transferencias', 'transferencias.id_jogador', '=', 'jogadores.id_jogador')
                                            ->where('transferencias.id_equipe_atual', '=', $equipe->id_equipe)
                                            ->where('flg_aprovado', '=', 1)
                                            ->groupBy('transferencias.id_jogador')
                                            ->orderBy('id_transferencia', 'DESC')
                                            ->count();

       $totalCampeonatosEmAberto = Campeonato::where('dt_inicio_inscricoes', '<=', date('Y-m-d'))
       					   ->where('dt_fim_inscricoes', '>=', date('Y-m-d'))
       					   ->where('flg_ativo', '=', 1)
       					   ->count();



		return View::make('admin/campeonatos/geracao/gerenciar-grupos')->with(
				    array(
				        'equipe' => $equipe,
				        'totalJogadores' => $totalJogadores,
				        'totalCampeonatosEmAberto' => $totalCampeonatosEmAberto,
				        'totalInscricoes' => InscricaoController::getTotalnscricao(),
				        'campeonato' => $campeonato,
				    )
				);


	}

	public function gerarGruposEquipes() {

		$equipe = Equipe::find(Auth::id());
		$campeonato = Campeonato::find(Input::get('campeonato'));
		
		foreach(Input::get('equipe') as $id => $equipes) {
			GrupoEquipe::where('id_grupo', '=', $id)->delete();
			foreach($equipes as $e) {
				$grupoEquipe = new GrupoEquipe;
				$grupoEquipe->id_equipe = $e;
				$grupoEquipe->id_grupo = $id;
				$grupoEquipe->save();
			}
		}

		return Redirect::to(URL::route('gerar-jogos', $campeonato->id_campeonato));
	}
}

  • There is a foreach that is like "@foreach($groups as $divisao)" in your Blade, I believe it should be like this "@foreach($campeonato->getGrupos as $divisao)". You are not specifying who $groups are, you need to specify.

  • Thank you so much for your help!

1 answer

2


In your Blade there’s a foreach that’s like this:

@foreach($grupos as $divisao)

Replace, and leave it so:

@foreach($campeonato->getGrupos as $divisao)

You are not specifying who $groups are, you need to specify.

  • 1

    I would even give you a rating, but someone denied my question and now I don’t have enough reputation :(thanks again for the help!

Browser other questions tagged

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