Mostrar dupla conexão no mesmo dashboard

10 respostas Resolvido
laravelmysqlphp
Willian_Lima

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

return view('dashboard',$data1)

entretanto quando quero passar o data2 para o mesmo dashboard, ele gera conflito ( eu ja esperava por isso ) mas não to conseguindo resolver, alguem tem ideia?

10 Respostas

rodevops

Tente isso…

return view('dashboard', ['data1' => $data1, 'data2' => $data2]);
Willian_Lima

ele retorna o layout (dashboard) mas não retorna mais os dados do banco… mas acho que é esse o caminho mesmo

rodevops

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
Willian_Lima

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]);

rodevops

Como você quer montar no template dashboard?

Willian_Lima

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

rodevops

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?

Willian_Lima

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…

Willian_Lima
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)
Willian_Lima
Solucao aceita

A solução foi a mais simples possivel… apenas mostrei as duas datas

return view('dashboard',$data,$data1);

e funcionou, obrigado pela ajuda!

Criado 1 de agosto de 2017
Ultima resposta 1 de ago. de 2017
Respostas 10
Participantes 2