MENU

③Vue.js & Laravel(Read…データベースからデータを取得)

目次

はじめに

こちらは10本の記事で構成されています

目標

データベースから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>

これで「④レスポンスを画面に表示させる」が達成されました

次回

あわせて読みたい
④Vue.js & Laravel(Create…データベースにデータを保存) 【はじめに】 こちらは10本の記事で構成されています ①Vue.js & Laravel(環境構築) ②Vue.js & Laravel(CRUDシステムの準備) ③Vue.js & Laravel(Read.....
独学に限界を感じたら、プログラミング教室がお勧めです。
エージェントは複数登録することをお勧めします。カウンセリングを通して、業界について勉強することができます。
フリーランス転職希望の方はフリーランス専門のエージェントを利用しましょう。
独学に限界を感じたら、プログラミング教室がお勧めです。
エージェントは複数登録することをお勧めします。
カウンセリングを通して、業界について勉強することができます。
フリーランス転職希望の方はフリーランス専門のエージェントを利用しましょう
よかったらシェアしてね!
  • URLをコピーしました!
目次