userID kolonu ekleyerek kişiye ait taskları getirmek için kulanacağız. aslında bir where koşulu koyarak yapmak isterdim.
php artisan make:migration add_user_id_to_tasks
task tablosuna user id kolonu ekle dedik. hemen açtık ilgili migration sayfasını açıyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('tasks', function (Blueprint $table) { $table->foreignId('user_id')->nullable()->constrained()->cascadeOnDelete()->after('id'); }); } /** * Reverse the migrations. */ public function down(): void { Schema::table('tasks', function (Blueprint $table) { $table->dropForeign(['user_id']); $table->dropColumn('user_id'); }); } }; |
Task Modeli
1 2 3 4 |
public function user() { return $this->belongsTo(User::class); } |
User Modeli
1 2 3 4 |
public function tasks() { return $this->hasMany(Task::class); } |
TaskController
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
<?php namespace App\Http\Controllers\Api\V2; use App\Models\Task; use App\Http\Controllers\Controller; use App\Http\Requests\StoreTaskRequest; use App\Http\Requests\UpdateTaskRequest; use App\Http\Resources\TaskResource; class TaskController extends Controller { /** * Display a listing of the resource. */ public function index() { return TaskResource::collection(auth()->user()->tasks()->get()); } /** * Store a newly created resource in storage. */ public function store(StoreTaskRequest $request) { $task = $request->user()->tasks()->create($request->validated()); return TaskResource::make($task); } /** * Display the specified resource. */ public function show(Task $task) { return TaskResource::make($task); } /** * Update the specified resource in storage. */ public function update(UpdateTaskRequest $request, Task $task) { $task->update($request->validated()); return TaskResource::make($task); } /** * Remove the specified resource from storage. */ public function destroy(Task $task) { $task->delete(); return response()->noContent(); } } |