<?php
// app/Models/Product.php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
use HasFactory;
protected $fillable = [
'name',
'description',
'price',
'category',
'in_stock'
];
protected $casts = [
'price' => 'decimal:2',
'in_stock' => 'boolean'
];
}
// app/Http/Controllers/ProductController.php
namespace GAME.HUoCheNGrM.Cn/2025-08-10-11-40-43jel.html
App\Http\Controllers;
use App\Models\Product;
use Illuminate\Http\Request;
class ProductController extends Controller
{
public function index()
{
return Product::all();
}
public function store(Request $request)
{
$request->validate([
'name' => 'required|unique:products|max:255',
'description GAME.HUoCheNGrM.Cn/2025-08-10-11-20-45w09.html' => 'required',
'price' => 'required|numeric|min:0',
'category' => 'required|in:Electronics,Clothing,Books'
]);
return Product::create($request->all());
}
public function show($id)
{
return Product::findOrFail($id);
}
public function update(Request $request, $id)
{
$product = Product::findOrFail($id);
$request-> GAME.HUoCheNGrM.Cn/2025-08-10-11-00-43056.html
validate([
'name' => 'sometimes|required|unique:products,name,'.$product->id,
'price' => 'sometimes|required|numeric|min:0',
'category' => 'sometimes|required|in:Electronics,Clothing,Books'
]);GAME.HUoCheNGrM.Cn/2025-08-10-10-40-385yz.html
$product->update($request->all());
return $product;
}
public function destroy($id)
{
Product::findOrFail($id)->delete();
return response()->json(null, 204);
}
}
// routes/api.php
use App\Http\Controllers\ProductController;
Route::apiResource('products', ProductController::class);
// 数据库迁移
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate GAME.HUoCheNGrM.Cn/2025-08-10-10-20-35nwg.html
\Support\Facades\Schema;
class CreateProductsTable extends Migration
{
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name')->unique();
$table->text('description');
$table->decimal('price', 10, 2);
$table->string('category');
$table->boolean('in_stock')->default(true);
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('products');
}
}