前提・実現したいこと
Eloquentで取り出したコレクションデータをJson形式に変換して、Javascript(vueコンポーネント)に渡したいです。
発生している問題・エラーメッセージ
response.dataがfalseになってしまいます。
//console.log(response)でコンソールに表示されるdata部分です。 data: false
該当のソースコード
全てのプロジェクト情報を受け取りたいvueファイル
vue
1<template> 2 〜省略〜 3</template> 4 5<script> 6export default { 7 data() { 8 return { 9 projects: [], 10 } 11 }, 12 mounted() { 13 axios 14 .get('/projectlist') 15 .then((response) => { 16 this.projects = response.data; 17 console.log(response); //こちらをコンソールに表示させています。 18 }); 19} 20</script> 21
JSON形式で全プロジェクト情報を返したいコントローラ
php
1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use App\Project; 7 8use GuzzleHttp\Client; 9use GuzzleHttp\Exception\ClientException; 10 11use function GuzzleHttp\json_decode; 12 13class HomeController extends Controller 14{ 15 public function getProjectList() 16 { 17 $projects = Project::all(); 18 return response()->json($projects->toJson()); 19 } 20}
試したこと
コントローラのreturn
部分をいくつかのパターンに書き換えて試してみましたが、期待通りになりませんでした。
return $projects; //結果:エラー //Uncaught (in promise) Error: Request failed with status code 500
return response()->json($projects); //結果:エラー //Uncaught (in promise) Error: Request failed with status code 500
return $projects->toJson(); //結果:response.dataが空 //data:""
$jsondata = $projects->toJson(); return response()->json(['projects' => $jsondata]); //結果:false //data: {projects: false}
一日試行錯誤してみたのですが、どうしてもコレクションをJSON形式に変換してvueコンポーネントに渡すことができずにいます。
アドバイスのほど、よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/16 23:52 編集