iT邦幫忙

2021 iThome 鐵人賽

DAY 16
1
永豐金融APIs

釋放你的潛能用技能交易吧!系列 第 16

[Day16] 第十六章-Skill的API 服務建構 (migration,route,controller,model)

  • 分享至 

  • xImage
  •  

前言

昨天我們建立了Skill的migtaion
我們今天目標是把簡單的API定義好來實作吧!!

除了migration,route,controller,model以外
我們還要定義Skill跟User兩個Model的關係喔

雖然技能跟使用者是屬於多對多
但是我這邊為了教學方便
我們把使用者-> 技能
定義成一對多吧(roni對微積分,物理)

目標

  1. skill的route,migration,model跟controller
  2. SKill 跟 User的Class

實作

1. Skill的 migration

在2021_09_30_154710_create_skills_table.php


<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateSkillsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('skills', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->integer('user_id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('skills');
    }
}

在這個migration裡面我們新增title跟user的對應ID
user_id 是laravel的預設對應值

_id 前面的是laravel 要對應的model id值

好了之後就下

php artisan migrate

2. 新增user model 中的skill function

接者我們要讓使用者擁有技能這個對應屬性
我們打開User model
並且新增skills這個function

app/Modesl/user

    public function skills()
    {
        return $this->hasMany(Skill::class);
    }

這邊是建立使用者的skill方法
建立一對多的概念

3. 接者在skillcontroller 裡面建立api

接者我們建立skillconteoller

php artisan make:controller SkillController --resource

SkillController.php

 public function index()
    {
        //
         $Skills = User::find(1)->skills;
         return response($Skills);

    }

我們可以使用這個api 來撈出該使用者(user_id1 是roni)所有的技能
我們先預設使用id是1來找roni所有的技能

4.修改route

我們新增skill的route

Route::resource('skills','SkillController');

5.在資料庫多幾筆資料

我們用api新增一筆admin資料
https://ithelp.ithome.com.tw/upload/images/20211002/20121052cW5TupXdFY.png

接者在skill表裡面
新增
roni 會 微積分 跟物理 user_id都要設定1喔!!
admin會化學 user_id設定2

結果如下
https://ithelp.ithome.com.tw/upload/images/20211002/20121052VtEdVXmRX0.png

6.我們來撈roni的 資料吧

直接打api就可以發現我們只撈到
user_id是1
也就是roni的skill
https://ithelp.ithome.com.tw/upload/images/20211002/20121052iKlehkN0zP.png

總結

明天我們來補上
相反的關係對應
接者就開始製作前端介面吧!!


上一篇
[Day15] 第十五章-建立skill的model跟migration
下一篇
[Day17] 第十七章-Skill的反向定義關係
系列文
釋放你的潛能用技能交易吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言