proWectCMS/resources

1.0.0 2022-03-13 15:35 UTC

This package is auto-updated.

Last update: 2024-09-13 21:12:25 UTC


README

基于spatie/laravel-query-builder的Laravel资源包与API构建器

安装

composer require prowetcms/resources

用法

示例仓库

<?php

namespace App\Repositories;

use App\Models\User;
use ProwectCMS\Resources\Repository;
use ProwectCMS\Resources\Fields\FieldDefinition;
use ProwectCMS\Resources\Facades\Field;

class UserRepository extends Repository
{
    public function getModelClass()
    {
        return User::class;
    }

    public function getFieldDefinition() : FieldDefinition
    {
        return (new FieldDefinition)
            ->add(Field::make('id', ['name' => 'id']))
            ->add(Field::make('text', ['name' => 'name'])->rules('required'))
            ->add(Field::make('email', ['name' => 'email']))
        ;
    }
}

示例控制器

<?php

namespace App\Http\Controllers;

use App\Repositories\UserRepository;
use ProwectCMS\Resources\Http\Controllers\ApiResourceController;
use ProwectCMS\Resources\Repository;

class UserController extends ApiResourceController
{
    protected function getRepository() : Repository
    {
        return new UserRepository();
    }
}

示例路由

Route::apiResource('users', UserController::class);