前提
Laravel9でAPI関数を実装したのですが、ルートエラーになります。
発生している問題・エラーメッセージ
"message" => "The POST method is not supported for this route. Supported methods: GET, HEAD, PUT, PATCH, DELETE." "exception" => "Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException" ・・・
該当のソースコード
php artisan test --filter TaskTest
tests/Feature/TaskTest.php
1<?php 2 3namespace Tests\Feature; 4 5use Illuminate\Foundation\Testing\RefreshDatabase; 6use Tests\TestCase; 7use App\Models\Task; 8 9class TaskTest extends TestCase 10{ 11 use RefreshDatabase; 12 /** 13 * @store test 14 */ 15 public function test_store() 16 { 17 $data = ['title' => 'テスト投稿']; 18 $response = $this->postJson('api/tasks',$data); 19 20 $response 21 ->assertStatus(201) 22 ->assertJsonFragment($data); 23 } 24
app/Http/Controllers/TaskController.php
1<?php 2 3namespace App\Http\Controllers; 4 5use App\Http\Requests\StoreTaskRequest; 6use App\Http\Requests\UpdateTaskRequest; 7use App\Models\Task; 8 9class TaskController extends Controller 10{ 11 12 /** 13 * Update the specified resource in storage. 14 * 15 * @param UpdateTaskRequest $request 16 * @param Task $task 17 * @return void 18 */ 19 public function update(UpdateTaskRequest $request, Task $task) 20 { 21 $task->title = $request->title(); 22 return $task 23 ? response()->json($task,201) 24 : response()->json([],500); 25 } 26} 27 28 29
routes/api.php
1<?php 2 3use Illuminate\Http\Request; 4use Illuminate\Support\Facades\Route; 5use App\Http\Controllers\TaskController; 6 7Route::apiResource('tasks',TaskController::class); 8 9
補足情報(FW/ツールのバージョンなど)
Laravel9を使用しています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。