目次
はじめに
こちらは10本の記事で構成されています
- ①Vue.js & Laravel(環境構築)
- ②Vue.js & Laravel(CRUDシステムの準備)
- ③Vue.js & Laravel(Read…データベースからデータを取得)
- ④Vue.js & Laravel(Create…データベースにデータを保存)
- ⑤Vue.js & Laravel(Update…データベースのデータを更新)
- ⑥Vue.js & Laravel(Delete…データベースのデータを削除)
- ⑦Vue.js & Laravel(リアルなダミーデータを大量に挿入)
- ⑧Vue.js & Laravel(検索機能の実装)
- ⑨Vue.js & Laravel(ページャーの実装)
- ⑩Vue.js & Laravel(認証機能の実装)
目標
データベースからAPIでデータを取得し、画面に表示させる
実装
①フロントエンドからAPIにリクエストする
<template>
<div class="taskComponent">
タスク画面
</div>
</template>
<script>
export default {
data() {
return {
+ tasks:[],
};
},
methods: {
+ taskRead() {
+ axios.get("/api/task/read").then((res) => {
+ this.tasks = res.data;
+ });
+ },
},
mounted() {
+ this.taskRead();
},
};
</script>
<style lang="scss" scoped>
</style>
これで「①フロントエンドからAPIにリクエストする」が達成されました
②APIからコントローラーにリクエストを送る
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
- /*
- |--------------------------------------------------------------------------
- | API Routes
- |--------------------------------------------------------------------------
- |
- | Here is where you can register API routes for your application. These
- | routes are loaded by the RouteServiceProvider within a group which
- | is assigned the "api" middleware group. Enjoy building your API!
- |
- */
- Route::middleware('auth:api')->get('/user', function (Request $request) {
- return $request->user();
- });
+ Route::get('/task/read', 'TaskController@read');
これで「②APIからコントローラーにリクエストを送る」が達成されました
③コントローラーからデータベースにリクエストを送る
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Task;
class TaskController extends Controller
{
+ public function read()
+ {
+ $data = Task::get();
+ return $data;
+ }
}
これで「③コントローラーからデータベースにリクエストを送る」が達成されました
④レスポンスを画面に表示させる
<template>
<div class="taskComponent">
- タスク画面
+ <ul>
+ <li v-for="(task, index) in tasks" :key="index">
+ 緊急:<input type="checkbox" v-model="task.emergency"><br>
+ 内容:<span :class="{red:task.emergency}">{{task.content}}</span>
+ </li>
+ </ul>
</div>
</template>
<script>
export default {
data() {
return {
tasks:[],
};
},
methods: {
taskRead() {
axios.get("/api/task/read").then((res) => {
this.tasks = res.data;
});
},
},
mounted() {
this.taskRead();
},
};
</script>
<style lang="scss" scoped>
+ li{
+ list-style: none;
+ margin-bottom: 15px;
+ }
+ .red{
+ color: red;
+ }
</style>