LaravelでChart.jsのlabelsに変数を渡したい。
解決したいこと
LaravelでChart.jsのlabelsに変数を渡したいです。
Laravelで体重記録アプリを作っています。
Mysqlからデータを取得し、横軸に記録した日付、縦軸に体重を設定したいです。
今回の質問内容は横軸のみ。
Mysqlから記録したデータ(日付)を取得(Chart.php)
//横軸の日数を取得
public function r_day(){
$record_dates = Record::select('date')
->where('user_id','=', \Auth::user()->id )
->whereNull('deleted_at')->get();
$record_day = [];
foreach($record_dates as $record){
$record_day[] = $record['date'];
}
return $record_day;
}
HomeController
$shaft = new Chart;
$record_day = $shaft->r_day();
dd($record_day);
return view('index',compact('record_day'))
//出力結果
array:2 [▼
0 => "2022-03-18"
1 => "2022-04-27"
]
グラフの表示
<script>
window.onload = function () {
let context = document.querySelector("#your_weight_chart").getContext('2d')
new Chart(context, {
type: 'line',
data: {
labels: {{$record_day}} , ⇦ここがうまくいかない
datasets: [{
label: "体重の変化",
data: [100,90,80,],
borderColor: '#ff6347',
backgroundColor: '#ff6347',
}],
},
options: {
responsive: false,
}
})
}
</script>
エラー内容
TypeError
htmlspecialchars(): Argument #1 ($string) must be of type string, array given (View: /var/www/diet-app/resources/views/index.blade.php)
エラー内容は、配列ではなく、文字列型を指定しないといけないという意味だと思いますので、そもそも配列を渡すことができないという意味なのでしょうか。
配列を渡すことができる方法がございましたら、ご教示いただけますと幸いです。
0