aminul / crudgenerator
一个简单的Laravel库,允许您使用单条命令创建CRUD操作
dev-main
2023-08-30 11:12 UTC
This package is auto-updated.
Last update: 2024-09-30 01:49:11 UTC
README
一个简单的Laravel 8.*库,允许您使用单条命令创建CRUD操作
安装
composer require aminul/crudgenerator
功能
- 控制器(已编写所有代码)
- 模型
- 迁移
- 请求
- 路由
启用包(可选)
此包实现了Laravel自动发现功能。安装后,包提供者和外观将自动添加
配置
发布配置文件
此步骤是必需的
php artisan vendor:publish --provider="Aminul\CrudGenerator\CrudGeneratorServiceProvider"
使用方法
发布配置文件后,只需运行以下命令
php artisan make:crud ModelName
就是这样,现在您的所有模型、控制器、迁移、路由
和请求
都将自动创建,其中包含执行基本CRUD操作所需的所有代码
示例
php artisan make:crud Product
ProductController.php
<?php
namespace App\Http\Controllers;
use App\Http\Requests\ProductRequest;
use App\Product;
class ProductController extends Controller
{
public function index()
{
$Products = Product::latest()->get();
return response()->json($Products, 201);
}
public function store(ProductRequest $request)
{
$Product = Product::create($request->all());
return response()->json($Product, 201);
}
public function show($id)
{
$Product = Product::findOrFail($id);
return response()->json($Product);
}
public function update(ProductRequest $request, $id)
{
$Product = Product::findOrFail($id);
$Product->update($request->all());
return response()->json($Product, 200);
}
public function destroy($id)
{
Product::destroy($id);
return response()->json(null, 204);
}
}
Product.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
protected $guarded = ['id'];
}
ProductRequest.php
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ProductRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [];
}
}
products表迁移
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateProductsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('products');
}
}
Routes/web.php
Route::resource('products', 'ProductController');