İçeriğe atla

CRUD Kaynak Oluşturmak

DizgePHP'in make:resource komutu, bir CRUD kaynağı için gereken her şeyi tek seferde üretir.

1. Resource oluşturun

bin/dizge make:resource Product

Bu komut şunları üretir:

  • app/Http/Controllers/ProductController.php — tam CRUD metodları
  • database/migrations/..._create_products.php — CREATE TABLE migration
  • views/products/index.php — liste görünümü
  • views/products/form.php — oluşturma/düzenleme formu

Komut ayrıca eklemeniz gereken route ve container binding kodlarını da ekrana yazdırır.

2. Binding'i kaydedin

routes/services.php dosyasına:

app()->container()->singleton(ProductController::class,
    fn (Container $c): ProductController => new ProductController());

3. Rotaları ekleyin

routes/web.php dosyasına:

app()->get('/products', [ProductController::class, 'index']);
app()->get('/products/create', [ProductController::class, 'create']);
app()->post('/products', [ProductController::class, 'store']);
app()->get('/products/{id}', [ProductController::class, 'show']);
app()->get('/products/{id}/edit', [ProductController::class, 'edit']);
app()->post('/products/{id}', [ProductController::class, 'update']);
app()->post('/products/{id}/delete', [ProductController::class, 'destroy']);

4. Migration'ı çalıştırın

bin/dizge migrate up

5. Test edin

http://localhost:8080/products adresini ziyaret edin. Yeni ürün ekleyin, düzenleyin ve silin.

Üretilen controller yapısı

Controller şu metodları içerir:

  • index() — tüm kayıtları listeler, dv('data-table') ile render eder
  • create() — oluşturma formunu gösterir
  • store() — yeni kayıt oluşturur (CSRF korumalı)
  • show() — tek kayıt detayı
  • edit() — düzenleme formunu gösterir
  • update() — kaydı günceller (CSRF korumalı)
  • destroy() — kaydı siler (CSRF korumalı)

Deployment →