请查看以下信息:

NoteController.php

<?php

namespace App\Http\Controllers;

use App\Http\Requests\NoteRequest;
use App\Models\Note;
use Illuminate\Http\JsonResponse;

class NoteController extends Controller
{
    public function index():JsonResponse
    {
        $notes = Note::all();
        return response()->json($notes, 200);
    }

    public function store(NoteRequest $request):JsonResponse
    {
        $note = Note::create( $request->all() );
        return response()->json([
            'success' => true,
            'data' => $note
        ], 201);
    }

    public function show($id):JsonResponse
    {
        $note = Note::find($id);
        return response()->json($note, 200);
    }

    public function update(NoteRequest $request, $id):JsonResponse
    {
        $note = Note::find($id);
        $note->update($request->all());
        return response()->json([
            'success' => true,
            'data' => $note,
        ], 200);
    }

    public function destroy($id):JsonResponse
    {
        Note::find($id)->delete();
        return response()->json([
            'success' => true
        ], 200);
    }
}

NoteRequest.php

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class NoteRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'title', 'required|max:255|min:3',
            'content', 'nullable|max:255|min:10',
        ];
    }
}

Note.php (model)

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Note extends Model
{
    use HasFactory;

    protected $guarded = [];
}

api.php

<?php

use App\Http\Controllers\NoteController;
use Illuminate\Support\Facades\Route;

Route::prefix('v1')->group(function () {
    Route::resource('/note', NoteController::class);
});

php artisan route:list

GET|HEAD        / ......................................................................................................................  
  POST            _ignition/execute-solution ............... ignition.executeSolution › Spatie\LaravelIgnition › ExecuteSolutionController  
  GET|HEAD        _ignition/health-check ........................... ignition.healthCheck › Spatie\LaravelIgnition › HealthCheckController  
  POST            _ignition/update-config ........................ ignition.updateConfig › Spatie\LaravelIgnition › UpdateConfigController  
  GET|HEAD        api/v1/note .......................................................................... note.index › NoteController@index  
  POST            api/v1/note .......................................................................... note.store › NoteController@store  
  GET|HEAD        api/v1/note/create ................................................................. note.create › NoteController@create  
  GET|HEAD        api/v1/note/{note} ..................................................................... note.show › NoteController@show  
  PUT|PATCH       api/v1/note/{note} ................................................................. note.update › NoteController@update  
  DELETE          api/v1/note/{note} ............................................................... note.destroy › NoteController@destroy  
  GET|HEAD        api/v1/note/{note}/edit ................................................................ note.edit › NoteController@edit  
  GET|HEAD        sanctum/csrf-cookie .................................. sanctum.csrf-cookie › Laravel\Sanctum › CsrfCookieController@show

thunder request (same as postman). Thunder Client.

JSON Request

{
  "title": "Hello World",
  "content": "Lorem ipsum."
}

try 作出一个JSON POST请求,并得到Status: 405 Method Not Allowed,我正在使用php artisan 服务,我可以提供git项目,如果有必要.请让我知道.

推荐答案

您的验证规则看起来不正确.在您的NoteRequest类中,规则应该是一个关联数组,其中键是字段名,值是验证规则.但是,在您的代码中,规则被定义为逗号分隔的字符串列表.这可能会导致验证失败并返回405方法不允许的错误.

public function rules()
{
    return [
        'title' => 'required|max:255|min:3',
        'content' => 'nullable|max:255|min:10',
    ];
}

Php相关问答推荐

谷歌云SQL / mysql谁是对的?

根据类别在WooCommerce中添加库存数量后缀

如何在Livewire中验证多个 Select 字段

PHP php_mongodb.dll for 32bit

从产品中获取WooCommerce产品属性单选按钮的列表WP_Query

在Laravel中,如果我用session—put()存储一些信息,客户端浏览器是否可以使用这些信息?>

与会者在WooCommerce中按购物车项目数量自定义 checkout 字段

如何显示每个分类的当前术语的帖子中包含的前20个标签,不包括标签分类

Php解压缩deflate64

从订单项目中获取ACF WooCommerce产品价值

在PHP中,如何将介于0和1之间(包括0和1)的浮点概率转换为数组索引?

在WP工具中页面加载时可短暂看到的JavaScript生成的字段

在带有livewire 3的laravel中使用规则方法时,无法进行实时验证

如何在WordPress REST API中判断应用程序密码

允许在WooCommerce管理订单列表中使用计费邮箱进行搜索

在 WooCommerce 订阅续订订单中设置送货方式

如果 Select 的县不是store 所在的县,如何隐藏本地自提?

根据支付网关选项更改 WooCommerce Checkout 上的立即付款按钮文本

docker |管道失败的 ubuntu 源列表

Laravel - 关联与设置观察者事件的 ID