Мне нужно передать переменную из контроллера в представление, чтобы использовать ее в скрипте и настроить граф Highstock. У меня проблема с преобразованием даты и использованием массивов. К сожалению, данные не включены в график. Я правильно получаю данные в представлении, но я думаю, что нам нужно «отформатировать» их через json_encode или что-то еще. Подскажите, почему и как решить проблему?
статистикаhe.blade.php
@section('content')
<div id = "container" style = "height: 400px; min-width: 310px"></div>
@stop
@section('css')@stop@section('js')
<script>
var data = [@php echo $data @endphp];
// Create the chart
Highcharts.stockChart('container', {
rangeSelector: {
selected: 1
},
title: {
text: 'Richieste ricevute'
},
series: [{
name: 'Richieste ricevute',
data: data,
tooltip: {
valueDecimals: 2
}
}]
});
</script>
@stop
statisticheController.php
public function index(){
/* calcolo il totale delle richieste ricevute */
$richieste = Richiesta::groupBy(DB::raw('DATE_FORMAT(created_at, "%Y-%m-%d")'))
->select(DB::raw('DATE_FORMAT(created_at, "%Y-%m-%d") as data'), DB::raw('count(*) as richieste_totali'))
->get();
foreach($richieste as $richiesta) {
$data[] = [$richiesta->data, $richiesta->richieste_totali];
}
return view('layouts.statistiche', compact( 'data'));
}






Вместо
var data = [@php echo $data @endphp]
ты можешь просто иметь
var data = @json($data);
Кроме того, вместо запуска @php echo $stuff; @endphp вы также можете отображать такие вещи, как {{$stuff}}.
Проверить это документы https://laravel.com/docs/5.6/blade