Я хочу показать название проекта и часы на диаграмме js, используя Laravel - PullRequest
0 голосов
/ 09 июля 2020

Я новичок в Laravel Я пытаюсь показать название проекта и часы на графике. js. К сожалению, данные не отображаются на графике; как я могу это показать?

контроллер

Сценарий диаграммы

 <script>
var ctx = document.getElementById('myChart');

var myChart = new Chart(ctx, {

    type: 'bar',
    @foreach($hour_logs   as  $key=>$value)
    data: {

        //labels: ['Red','Purple'],

          labels: {{$value}},

        datasets: [{
    
            data: {{$value}},
            backgroundColor: [
                'rgba(54, 162, 235, 0.2)', 
            ],
            borderColor: [
                'rgba(54, 162, 235, 1)', 
            ],
            borderWidth: 1
        }]
    },
    @endforeach
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero: true
                }
            }]
        }
    }
});
</script>

ответ на запрос

[
  "Joylinkhk: 13,",
  "HorizonTechnologies: 2,",
  "Alahazrat: 9,",
  "j2w: 0,"
]
on the left side project name and on the right side hours 


dd($hour_logs)

array:4 [
  0 => "Joylinkhk: 13,"
  1 => "HorizonTechnologies: 2,"
  2 => "Alahazrat: 9,"
  3 => "j2w: 0,"
]

Ответы [ 2 ]

0 голосов
/ 09 июля 2020

Используйте следующий код. Вы должны отправить данные из контроллера, проанализировав его следующим образом

implode(',', $label) and 
implode(',', $value)


<script>
let label = {!! $label !!}
let value = {!! $value !!}
var ctx = document.getElementById('myChart');

var myChart = new Chart(ctx, {

type: 'bar',
@foreach($hour_logs   as  $key=>$value)
data: {

    //labels: ['Red','Purple'],

      labels: label.split(','),

    datasets: [{

        data: value.aplit(,),
        backgroundColor: [
            'rgba(54, 162, 235, 0.2)', 
        ],
        borderColor: [
            'rgba(54, 162, 235, 1)', 
        ],
        borderWidth: 1
    }]
},
@endforeach
options: {
    scales: {
        yAxes: [{
            ticks: {
                beginAtZero: true
            }
        }]
    }
}
});
</script>
0 голосов
/ 09 июля 2020

При передаче сложных структур данных из PHP в JavaScript вы, скорее всего, захотите преобразовать их в JSON.

Вы можете преобразовать массивы в JSON, используя json_encode(). Если вы используете коллекции Larvel, их можно преобразовать с помощью ->toJson().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...