MENU

④Vue.js & Laravel(Create…データベースにデータを保存)

目次

はじめに

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

目標

データベースにAPIでデータを送信し、保存する

実装

①フロントエンドからAPIにリクエストする

<template>
    <div class="taskComponent">
+        <form @submit.prevent="taskCreate">
+            緊急:<input v-model="newtask.emergency" type="checkbox"><br>
+            内容:<input v-model="newtask.content" type="text">
+            <button>create</button>
+        </form>
+        <hr>
        <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 {
+            newtask: {
+                content: "",
+                emergency: false,
+            },
            tasks:[],
        };
    },
    methods: {
+        taskCreate() {
+            if (this.newtask.content != "") {
+                axios.post("/api/task/create", this.newtask).then((res) => {
+                    this.newtask.emergency = false;
+                    this.newtask.content = "";
+                    this.taskRead();
+                });
+            }
+        },
        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>

これで「①フロントエンドからAPIにリクエストする」が達成されました

②APIからコントローラーにリクエストを送る

<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

+ Route::post('/task/create', 'TaskController@create');
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 create(Request $request)
+    {
+        Task::create([
+            'emergency' => $request->emergency,
+            'content' => $request->content,
+        ]);
+    }
    public function read()
    {
        $data = Task::get();
        return $data;
    }
}

これで「③コントローラーからモデルにリクエストを送る」が達成されました

④モデルからデータベースに保存する

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Task extends Model
{
+    protected $fillable = [
+        'emergency',
+        'content'
+    ];
}

これで「④モデルからデータベースに保存する」が達成されました

次回

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