Eae galera,
to com um problema e não to sabendo muito bem como resolve-lo, eu to buscando dado de 2 tabelas diferentes no mysql.
e como estou utilizando o laravel utilizo o comando
Mostrar dupla conexão no mesmo dashboard
10 Respostas
Tente isso…
return view('dashboard', ['data1' => $data1, 'data2' => $data2]);
ele retorna o layout (dashboard) mas não retorna mais os dados do banco… mas acho que é esse o caminho mesmo
Está em branco porque você precisa ajustar onde chamava o data1 no foreach por exemplo…
@foreach($data1 as $data)
....
@endforeach
E para o data2 a mesma coisa…
@foreach($data2 as $data)
....
@endforeach
Da uma olhada em como eu fiz, até então os foreach estão separados pq são duas tabelas diferentes no banco… mas caso eu declare apenas um data ou outro, ele mostra normalmente…
$campanhas = DB::connection(“mysql”)->select(“SELECT * FROM bettadial” );
foreach($campanhas as $campanha){
$campanha_nome = $campanha->campanha_nome;
$campanha_id = $campanha->campanha_id;
$status = $campanha->status;
$vdn_dest = $campanha->vdn_destino;
$skill = $campanha->skill_agentes;
$total_lista = $campanha->total_lista;
$total_pendente = $campanha->total_pendente;
$retorno[] = [
'campanha' => $campanha_nome,
'status' => $status,
'vdn_destino' => $vdn_dest,
'skill' => $skill,
'total_lista' => $total_lista,
'total_pendente' => $total_pendente
];
}
$data['retorno_dashboard'] = $retorno;
$operadores = DB::connection("mysql")->select("SELECT * from operadores");
//para cada array ($campanhas) é passado para o valor ($campanha).
foreach($operadores as $operador){
//seleciona o ID da campanha que foi armazenado pelo array.
$operador_id = $operador->id;
//\App\campanha::where('title',$operador->desc_servico)->first()->id;
$operador_nome = $operador->name;
$tentativas = $operador->numero_tentativas;
$codigo = $operador->codigo;
$telefone = $operador->telefone;
$status = $operador->status;
$agenda_prev = $operador->agendamento_prev;
$prioridade = $operador->prioridade;
$ultima_class = $operador->ultima_classificacao;
$ultima_atual = $operador->ultima_atualizacao;
$return[] = [
'id'=>$operador_id,
'nome'=>$operador_nome,
'tentativas'=>$tentativas,
'codigo'=>$codigo,
'telefone'=>$telefone,
'status'=>$status,
'agendado'=>$agenda_prev,
'prioridade'=>$prioridade,
'ultima_class'=>$ultima_class,
'ultima_atual'=>$ultima_atual
];
unset($mailings);
}
$data1[‘status_operador’] = $return;
return view(‘dashboard’, [‘data1’ => $data, ‘data2’ => $data1]);
Como você quer montar no template dashboard?
eu chamo ele por meio de uma blade no dashboard
<div class="x_content">
<table class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th>Nome Campanha</th>
<th>Status</th>
<th>VDN Destino</th>
<th>Skill Agentes</th>
<th>Total Lista</th>
<th>Total Pendente</th>
</tr>
</thead>
<tbody id="tabela_operadores">
@if(isset($retorno_dashboard))
@foreach($retorno_dashboard as $return)
<tr>
<td> {{ $return['campanha'] }} </td>
<td> {{ $return['status'] }} </td>
<td> {{ $return['vdn_destino'] }} </td>
<td> {{ $return['skill'] }} </td>
<td> {{ $return ['total_lista'] }} </td>
<td> {{ $return['total_pendente'] }} </td>
</tr>
@endforeach
@endif
</tbody>
</table>
</div>
e o mesmo para o data2, esse ai é o retorno do data apenas
Essa linha…
@foreach($retorno_dashboard as $return)
Tente…
@foreach($data1['retorno_dashboard'] as $return)
Se não der certo tente…
@foreach($data1->retorno_dashboard as $return)
Perceba que quando se passa mais de um valor, como foi passado em ‘data1’ e ‘data2’, o blade precisa achá-los pela chave passada, pegou?
Sim, entendi essa parte, a duvida esta mesmo em como passar essa chave… tentei de ambas as formas e ele retornou erro dizendo que não encontra a variavel $data1, tendo em vista que tenho uma ‘‘variavel’’ puxando essas informações…
Da a impressão que os dados de ambas estão se sobrepondo na hora de passa-las para o dashboard, sera que não tem um caminho de diferenciar esses dados? de uma forma bem leiga ( até pq não entendo muito de php haha )
return view(‘dashboard’,$data)
return view(‘dashboard’,$data1)
A solução foi a mais simples possivel… apenas mostrei as duas datas
return view('dashboard',$data,$data1);
e funcionou, obrigado pela ajuda!