Laravel 10 ile Alışveriş Sitesi Ders 8 - İletişim Formu Veritabanına Kaydetme
Laravel iletişim formu oluşturmak oldukça kolaydır ve bu form verilerini veritabanında saklamak da aynı şekilde kolaydır. Bu işlemi gerçekleştirmek için, contacts adında bir veritabanı tablosu oluşturmamız gerekiyor.
Schema::create('contacts', function (Blueprint $table) {
$table->id();
$table->string('name')->nullable();
$table->string('email')->nullable();
$table->string('subject')->nullable();
$table->text('message')->nullable();
$table->string('ip')->nullable();
$table->enum('status', ['0', '1'])->nullable();
$table->timestamps();
});
Yukarıdaki kod bloğu, contacts
adında bir tablo oluşturur. Bu tablo, form verilerini saklamak için kullanacağımız tablodur. Tablo sütunları, name
, email
, subject
, message
, ip
, status
ve timestamps
özelliklerini içerir.
Şimdi, Contact
modelini oluşturabiliriz. Model sınıfı, veritabanı işlemlerimizi gerçekleştirmek için kullanacağımız bir sınıftır.
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Contact extends Model
{
protected $fillable = ['name', 'email', 'subject', 'message', 'ip', 'status'];
}
Yukarıdaki kod bloğu, Contact
modelini oluşturur. protected $fillable
özelliği, modelin hangi sütunlarına veri yazabileceğimizi belirtir.
Şimdi, store
işlemine geçebiliriz. store
işlemi, form verilerini alır, doğrular ve veritabanına kaydeder.
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255',
'subject' => 'nullable|string|max:255',
'message' => 'required|string',
]);
$data = $request->all();
$data['ip'] = request()->ip();
$contact = Contact::create($data);
return redirect()->back()->with('success', 'Message sent!');
}
Yukarıdaki kod bloğu, store
işlemini gerçekleştirir. İlk olarak, $request->validate()
yöntemi ile form verilerini doğrularız. Doğrulama başarısız olursa, Laravel otomatik olarak kullanıcıyı form sayfasına geri yönlendirir ve hata mesajlarını gösterir. Doğrulama başarılı olursa, verileri Contact::create()
yöntemi aracılığıyla veritabanına kaydediyoruz.
Son olarak, bir success
mesajı göstermek için redirect()
fonksiyonunu kullanarak kullanıcıyı form sayfasına geri yönlendir
Yorumlar (0)