Laravelにて、Componentsクラスを記述している際のエラー解決方法を解説していきます。このようなエラーが発生しました。
viewへcollectionのデータを渡す際に発生したので、、まさか、、、componentでcollection渡せない…??? と思ってしまいましたが、そういった問題ではなかったです。 下記解説です。
■問題点①
調べていくとキャッシュがクリア出来ていない場合に、発生するエラー表示のようです。
■問題点①の解決策
php artisan view:clear
■問題点②
上記のキャッシュクリアしても、エラーが変わらず、消えない…という場合。
1つ疑って頂きたいのは、
変数名に _ アンダーバーを利用していませんか??
例えば、$category_channels このようにアンダーバーを利用している場合は変更が必要です。
■問題点②の解決策
<x-ranking :category-channels=”$category_channels”>で複数単語を用いて変数を記述するさいには、””_””を利用せずに、””-“”記述する必要があるようです。
app>resources>ranking.blade.php
//// <x-ranking :category-channels="$category_channels" /> ////
// Errorのパターン:<x-ranking :category_channels=”$category_channels” />
これを、View>Componetsで受け取る際には、キャメルケースで受けることが出来ます。
app>View>Componets>Ranking.php
<?php namespace App\View\Components; use Illuminate\View\Component; class Ranking extends Component { /** * ランキング掲載のチャンネルデータ */ public $category_channels; public function __construct($categoryChannels) { $this->category_channels = $categoryChannels; } public function render() { return view('components.ranking'); } }