昨天我們建立了Skill的migtaion
我們今天目標是把簡單的API定義好來實作吧!!
除了migration,route,controller,model以外
我們還要定義Skill跟User兩個Model的關係喔
雖然技能跟使用者是屬於多對多
但是我這邊為了教學方便
我們把使用者-> 技能
定義成一對多吧(roni對微積分,物理)
在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
接者我們要讓使用者擁有技能這個對應屬性
我們打開User model
並且新增skills這個function
app/Modesl/user
public function skills()
{
return $this->hasMany(Skill::class);
}
這邊是建立使用者的skill方法
建立一對多的概念
接者我們建立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所有的技能
我們新增skill的route
Route::resource('skills','SkillController');
我們用api新增一筆admin資料
接者在skill表裡面
新增
roni 會 微積分 跟物理 user_id都要設定1喔!!
admin會化學 user_id設定2
結果如下
直接打api就可以發現我們只撈到
user_id是1
也就是roni的skill
明天我們來補上
相反的關係對應
接者就開始製作前端介面吧!!