はじめに
こちらは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">
+ <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システムの準備) ③V…magicgifted.com




