Created
November 6, 2017 01:45
-
-
Save fxcosta/3aa9d23c89bfd94ce524b24ceb032756 to your computer and use it in GitHub Desktop.
Simples script pra ajudar a dúvida de uma pessoa no Laravel Brasil sobre usar o fxcosta/laravel-chartjs de maneira dinâmica: https://www.facebook.com/groups/laravelbrasil/permalink/1604536466235069/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$dados = $objetoQualquer->meDeTodosOsDados(); // seu select seja da forma como você faz. | |
$arrayCompleto = []; // esse será nosso array principal que agrupará os outros arrays. | |
foreach($dados as $dado) { | |
$arrayCompleto[] = [ | |
'label' => $dado->label, | |
'backgroundColor' => $dado->color | |
'qualquerCoisaDoChartJs' => $dado->qualquerAtributoValido | |
]; | |
// ai em cima nós estamos sempre inserindo um array pra dentro do array completo. | |
// esse array interno tem que ter a estrutura que a lib exige, que no final das contas é o que | |
// o chartjs exige. | |
} | |
print_r($arrayCompleto); // apenas pra vc entender, no final da iteração, o array completo vai ser algo como: | |
// array | |
// array ('label' => 'x', ....) | |
// array ('label' => 'y', ....) | |
// agora que temos tudo que precisavamos, podemos instanciar nosso objeto que cuida do chart e passar | |
// tudo que precisamos pra ele: | |
$chartjs = app()->chartjs | |
->name('x') | |
->type('bar') | |
->datasets($arrayCompleto); | |
// agora sim o chart está completo e tu pode jogar ele pra tua view ou fazer qualquer coisa com objeto | |
// porque você construiu o array com os dados formatados e depois só mandou pro método datasets. | |
// a lógica parte daí, agora a forma como tu vai construir o chart ou que tipo de chart é, depende do teu problema. | |
// em geral, vc pode construir charts dinâmicos assim :-) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment