2
I have a championship management system in Laravel. The system works perfectly, but I’m having problems generating rounds, I need that regardless of the number of groups enrolled, the system can generate the rounds of the championship, I’m doing as follows, but according to the console returns the following error on line 184:
Errorexception (E_NOTICE) HELP Undefined variable: rounds
as I do not have much experience in Laravel, I am not able to write the code correctly, nor define some variables, it does not work at all, I am already in despair, if any good soul can help me, I will do everything possible to reciprocate, I thank you from now on!
Rodadaadmincontroller.php
<?php
class RodadaAdminController extends BaseController {
public function listarGeracaoRodadas($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);
if($campeonato->flg_tp_campeonato == 1) {
return self::geraJogosMunicipal($campeonato->id_campeonato);
}
return View::make('admin/campeonatos/geracao/gerar-rodadas')->with(
array(
'equipe' => $equipe,
'totalJogadores' => $totalJogadores,
'totalCampeonatosEmAberto' => $totalCampeonatosEmAberto,
'totalInscricoes' => InscricaoController::getTotalnscricao(),
'campeonato' => $campeonato,
)
);
}
public function gerarRodadas() {
// Gerando as Rodadas do Campeonato
foreach(Input::get('rodada') as $idJogo => $rodada) {
$jogo = Jogo::find($idJogo);
$jogo->nr_rodada = $rodada[0];
$jogo->save();
}
$campeonato = Campeonato::find($jogo->id_campeonato);
$campeonato->flg_andamento = 3; // Jogos criados com rodadas
$campeonato->save();
return Redirect::to(URL::route('admin-selecao-campeonato-jogos'))->with(array('sucesso' => 'Rodadas Criadas com Sucesso!'));
}
static public function geraJogosMunicipal($id) {
$campeonato = Campeonato::find($id);
foreach($campeonato->getGrupos as $grupo) {
$equipes = $grupo->getEquipes()->select('id_equipe')->get();
$qtdEquipes = count($equipes);
if($qtdEquipes == 8){
// Gerando a Primeira Rodada
$rodadas[$grupo->id_grupo][1] = array(
array($equipes[0]->id_equipe, $equipes[1]->id_equipe),
array($equipes[2]->id_equipe, $equipes[3]->id_equipe),
array($equipes[4]->id_equipe, $equipes[5]->id_equipe),
array($equipes[6]->id_equipe, $equipes[7]->id_equipe),
);
// Gerando a Segunda Rodada
$rodadas[$grupo->id_grupo][2] = array(
array($equipes[7]->id_equipe, $equipes[4]->id_equipe),
array($equipes[5]->id_equipe, $equipes[6]->id_equipe),
array($equipes[3]->id_equipe, $equipes[0]->id_equipe),
array($equipes[1]->id_equipe, $equipes[2]->id_equipe),
);
// Gerando a Terceira Rodada
$rodadas[$grupo->id_grupo][3] = array(
array($equipes[6]->id_equipe, $equipes[3]->id_equipe),
array($equipes[2]->id_equipe, $equipes[5]->id_equipe),
array($equipes[4]->id_equipe, $equipes[1]->id_equipe),
array($equipes[0]->id_equipe, $equipes[7]->id_equipe),
);
// Gerando a Quarta Rodada
$rodadas[$grupo->id_grupo][4] = array(
array($equipes[1]->id_equipe, $equipes[6]->id_equipe),
array($equipes[3]->id_equipe, $equipes[4]->id_equipe),
array($equipes[7]->id_equipe, $equipes[2]->id_equipe),
array($equipes[5]->id_equipe, $equipes[0]->id_equipe),
);
// Gerando a Quinta Rodada
$rodadas[$grupo->id_grupo][5] = array(
array($equipes[0]->id_equipe, $equipes[2]->id_equipe),
array($equipes[1]->id_equipe, $equipes[3]->id_equipe),
array($equipes[4]->id_equipe, $equipes[6]->id_equipe),
array($equipes[7]->id_equipe, $equipes[5]->id_equipe),
);
// Gerando a Sexta Rodada
$rodadas[$grupo->id_grupo][6] = array(
array($equipes[6]->id_equipe, $equipes[0]->id_equipe),
array($equipes[5]->id_equipe, $equipes[1]->id_equipe),
array($equipes[3]->id_equipe, $equipes[7]->id_equipe),
array($equipes[2]->id_equipe, $equipes[4]->id_equipe),
);
// Gerando a Sétima Rodada
$rodadas[$grupo->id_grupo][7] = array(
array($equipes[7]->id_equipe, $equipes[1]->id_equipe),
array($equipes[5]->id_equipe, $equipes[3]->id_equipe),
array($equipes[6]->id_equipe, $equipes[2]->id_equipe),
array($equipes[4]->id_equipe, $equipes[0]->id_equipe),
);
}else if($qtdEquipes == 7){
// Gerando a Primeira Rodada
$rodadas[$grupo->id_grupo][1] = array(
array($equipes[1]->id_equipe, $equipes[2]->id_equipe),
array($equipes[3]->id_equipe, $equipes[4]->id_equipe),
array($equipes[5]->id_equipe, $equipes[6]->id_equipe),
//array($equipes[6]->id_equipe (Folga 0)
);
// Gerando a Segunda Rodada
$rodadas[$grupo->id_grupo][2] = array(
array($equipes[2]->id_equipe, $equipes[3]->id_equipe),
array($equipes[4]->id_equipe, $equipes[5]->id_equipe),
array($equipes[0]->id_equipe, $equipes[6]->id_equipe),
//array($equipes[5]->id_equipe (Folga 1)
);
// Gerando a Terceira Rodada
$rodadas[$grupo->id_grupo][3] = array(
array($equipes[3]->id_equipe, $equipes[6]->id_equipe),
array($equipes[1]->id_equipe, $equipes[5]->id_equipe),
array($equipes[0]->id_equipe, $equipes[4]->id_equipe),
//array($equipes[4]->id_equipe (Folga 2)
);
// Gerando a Quarta Rodada
$rodadas[$grupo->id_grupo][4] = array(
array($equipes[1]->id_equipe, $equipes[4]->id_equipe),
array($equipes[0]->id_equipe, $equipes[5]->id_equipe),
array($equipes[2]->id_equipe, $equipes[6]->id_equipe),
//array($equipes[3]->id_equipe (Folga 3)
);
// Gerando a Quinta Rodada
$rodadas[$grupo->id_grupo][5] = array(
array($equipes[2]->id_equipe, $equipes[5]->id_equipe),
array($equipes[0]->id_equipe, $equipes[3]->id_equipe),
array($equipes[1]->id_equipe, $equipes[6]->id_equipe),
//array($equipes[2]->id_equipe (Folga 4)
);
// Gerando a Sexta Rodada
$rodadas[$grupo->id_grupo][6] = array(
array($equipes[4]->id_equipe, $equipes[6]->id_equipe),
array($equipes[1]->id_equipe, $equipes[3]->id_equipe),
array($equipes[0]->id_equipe, $equipes[2]->id_equipe),
//array($equipes[1]->id_equipe (Folga 5)
);
// Gerando a Sétima Rodada
$rodadas[$grupo->id_grupo][7] = array(
array($equipes[0]->id_equipe, $equipes[1]->id_equipe),
array($equipes[2]->id_equipe, $equipes[4]->id_equipe),
array($equipes[3]->id_equipe, $equipes[5]->id_equipe),
//array($equipes[0]->id_equipe (Folga 6)
);
}
}
foreach($rodadas as $idGrupo => $jogos) {
foreach($jogos as $nrRodada => $jg) {
foreach($jg 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 = $idGrupo;
$jogo->flg_tp_jogo = 1;
$jogo->nr_rodada = $nrRodada;
$jogo->flg_ativo = 1;
$jogo->save();
echo $eq1.' x '.$eq2.'<br>';
}
}
}
$campeonato = Campeonato::find($jogo->id_campeonato);
$campeonato->flg_andamento = 3; // Jogos criados com rodadas teste
$campeonato->save();
return Redirect::to(URL::route('admin-selecao-campeonato-jogos'))->with(array('sucesso' => 'Rodadas Criadas com Sucesso!'));
}
}
generate-runs.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">Geração de Rodadas</li>
</ol>
<h1>Geração de Rodadas</h1>
@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
{{ Form::open(array('url' => URL::route('post-gerar-rodadas', $campeonato->id_campeonato), 'class' => 'form-horizontal')) }}
<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
</ul>
<div class="tab-content">
@foreach($campeonato->getGrupos as $divisao)
<div id="div{{$divisao}}" class="tab-pane">
<div class="col-md-12">
<label>Buscar Jogo</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-search"></i></span>
<input type="text" class="form-control" name="buscarTabela">
</div>
</div>
<div class="clearfix"></div>
<hr>
@foreach($campeonato->getGrupos()->where('nr_divisao', '=', $divisao)->get() as $grupo)
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Grupo {{ $grupo->nm_grupo }}</h3>
</div>
<div class="panel-body">
<?php $x = 1; ?>
@foreach($grupo->getJogos as $jogo)
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{{{ str_limit($jogo->getJogadorHome()->first()->nm_equipe, 20) }}} x {{{ str_limit($jogo->getJogadorAway()->first()->nm_equipe, 20) }}}</h3>
</div>
<div class="panel-body">
<?php
$totJogos = count($grupo->getJogos);
$totEquipes = floor($grupo->getEquipes()->count() / 2);
?>
Selecione uma rodada
<select name="rodada[{{ $jogo->id_jogo }}][] " class="form-control">
@for($i = 1; $i <= floor($totJogos / $totEquipes); ++$i)
<option {{ ($i == $x) ? 'selected="selected"' : '' }} value="{{ $i }}">{{ $i }} Rodada</option>
@endfor
</select>
</div>
</div>
</div>
<?php
if($x == floor($totJogos / $totEquipes)) {
$x = 0;
}
$x++;
?>
@endforeach
</div>
</div>
@endforeach
</div>
@endforeach
</div>
<div class="clearfix"></div>
<hr>
<button class="btn btn-block btn-success">Gerenciar Rodadas</button>
<div class="clearfix"></div>
<hr>
{{ Form::close() }}
@stop
@section('scripts')
$('input[name="buscarTabela"]').on('keyup', function() {
var vlrBusca = this;
$.each($(this).parents('.tab-pane').find('.panel'), function() {
$(this).show();
if($(this).text().toLowerCase().indexOf($(vlrBusca).val().toLowerCase()) == -1) {
$(this).hide();
}
});
});
@stop
Put the bug please
– Jorge Costa
sorry, I had forgotten! I added to the question.
– Miguel Campos
You’re probably testing with
$qtdEquipes
different from 7 and 8, not entering the conditions that define the variable$rodadas
. And if the number of teams is 3, what should be$rodadas
?– Woss
understood, as it is a futsal championship we would have to add a minimum amount of teams so that the script can generate the rounds of games, right?
– Miguel Campos
This is already requirement of the project and should be discussed with the responsible team. I just pointed out where is the logic error that should be solved.
– Woss
I understand, the project is private, so I’m looking for help, I appreciate the tip!
– Miguel Campos
this error happens in the controller or view?
– Sidclay Ataíde
I was able to correct the error, but I couldn’t do the function the way I needed to :(
– Miguel Campos