-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.
– LSA
Thank you so much for your help!
– Miguel Campos