初学者で、独学で進めているため、初歩的な質問申し訳ございません。
前提・実現したいこと
controllerから2つの配列を取得して、bladeファイル→vueコンポーネントに値を渡したい。
発生している問題・エラーメッセージ
Template compilation error: v-bind is missing expression.
該当のソースコード
PHP
1// controllerファイル 2/** 3 * レッスン一覧 4 * 5 * @param Request $request 6 * @return Factory|View 7 */ 8public function index(Request $request) 9{ 10 $params = $request->all(); 11 $lessons = $this->lesson->search($params); 12 $categories = $this->category->getAll(true); 13 return view('lessons.index', compact('lessons', 'categories')); 14}
PHP
1// bladeファイル 2<lesson-index-component 3 :lessons="{{ $lessons }}" 4 :categories="{{ $categories }}" 5>
試したこと
ddで、$lessons及び$categoriesの中身を表示してみました。
// $lessons Illuminate\Pagination\LengthAwarePaginator {#1381 ▼ #total: 5 #lastPage: 1 #items: Illuminate\Database\Eloquent\Collection {#1388 ▶} #perPage: 20 #currentPage: 1 #path: "http://127.0.0.1:8000/lessons" #query: [] #fragment: null #pageName: "page" +onEachSide: 3 #options: array:2 [▶] }
// $categories Illuminate\Database\Eloquent\Collection {#1402 ▼ #items: array:19 [▶] }
$lessonsが配列ではない?と感じたので、配列のみ取得しました。
PHP
1/** 2 * レッスン一覧 3 * 4 * @param Request $request 5 * @return Factory|View 6 */ 7public function index(Request $request) 8{ 9 $params = $request->all(); 10 $lessons = $this->lesson->search($params); 11 $lessons = $lessons->items(); 12 $categories = $this->category->getAll(true); 13 return view('lessons.index', compact('lessons', 'categories')); 14} 15
しかし、以下のエラーになりました。
htmlspecialchars() expects parameter 1 to be string, array given (View: /Applications/MAMP/htdocs/app/resources/views/lessons/index.blade.php)
補足情報(FW/ツールのバージョンなど)
Laravel Framework 8.14.0
vue@3.0.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/18 16:20