ravuthz/laravel-crud
最新稳定版本:v1.1.5
Composer 安装命令:
composer require ravuthz/laravel-crud
包简介
A Laravel package providing a base controller for CRUD operations.
README 文档
README
Install Package via Composer
composer require ravuthz/laravel-crud
Usage
Generate Crud Controller and Test
php artisan crud --help # Generate crud model, controller, test, request, resource php artisan crud:generate Post --test # Generate only crud controller php artisan crud:controller Post # Generate only crud controller test php artisan crud:controller-test Post
Use by follow sample PostController and PostControllerTest
First create:
- Create controller model, and migration via
php artisan make:model Post -mccommand - Create request via
php artisan make:request PostRequestcommand - Create resource via
php artisan make:resource PostResourcecommand
Then you can use the following sample code to make it as crud controller and test.
// PostController.php <?php namespace App\Http\Controllers\Api; use App\Models\Post; use App\Http\Requests\PostRequest; use App\Http\Resources\PostResource; use App\Http\Resources\PostCollection; use Ravuthz\LaravelCrud\CrudController; class PostController extends CrudController { protected $model = Post::class; protected $resource = PostResource::class; // protected $collection = PostCollection::class; protected $storeRequest = PostRequest::class; protected $updateRequest = PostRequest::class; // Override this method to add custom logic before saving protected function beforeSave($request, $model, $id = null) { return $model; } // Override this method to add custom logic after saving protected function afterSave($request, $model, $id = null) { return $model; } }
// PostControllerTest.php <?php namespace Tests\Feature\Http\Controllers\Api; use Illuminate\Foundation\Testing\RefreshDatabase; use Laravel\Passport\Passport; use Ravuthz\LaravelCrud\TestCrud; class PostControllerTest extends TestCrud { use RefreshDatabase; protected string $route = 'api/posts'; protected function setUp(): void { parent::setUp(); Passport::actingAs(User::factory()->create()); Post::create([ 'name' => $this->faker->name(), 'desc' => $this->faker->sentence(), ]); } protected function requestPayload($id = null): array { // $time = now()->format('Y-m-d_H:m:s.u'); // some related data, attachment with some unique value with time here return [ 'id' => $id // 'name' => $this->faker->name(), // 'desc' => $this->faker->sentence(), ]; } }
统计信息
- 总下载量: 55
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-07-11