برای ایجاد فرم در لاراول و ارسال داده به کنترلر، میتوان از امکانات خود لاراول مانند Route, Controller, و Blade Templates استفاده کرد. در اینجا نحوه ایجاد یک فرم ساده، ارسال داده به کنترلر، و ذخیره آن در پایگاه داده را آموزش میدهیم.
📝 ایجاد فرم در لاراول و ارسال داده به کنترلر
1. ساخت مایگریشن و مدل برای دادهها
ابتدا یک مدل و مایگریشن برای دادههایی که میخواهیم در فرم وارد کنیم، ایجاد میکنیم. برای مثال، میخواهیم یک فرم برای ثبت اطلاعات یک پست بسازیم.
در فایل مایگریشن (database/migrations/xxxx_xx_xx_create_posts_table.php)، ساختار جدول را به این شکل تعریف میکنیم:
سپس مایگریشن را اجرا میکنیم تا جدول در پایگاه داده ایجاد شود:
2. ایجاد فرم در Blade
در این مرحله، یک فرم برای ارسال اطلاعات به کنترلر ایجاد میکنیم.
مسیر ایجاد فرم در Blade: resources/views/posts/create.blade.php
در این فرم:
-
از
@csrfبرای محافظت از حملات CSRF استفاده میکنیم. -
فرم به آدرس
posts.storeارسال میشود که در Route تعریف خواهیم کرد. -
دادهها به صورت
POSTارسال میشوند.
3. تعریف Route برای ارسال فرم
در فایل routes/web.php، باید یک روت برای نمایش فرم و یک روت برای ارسال دادهها به کنترلر ایجاد کنیم.
در اینجا:
-
GET /posts/createبرای نمایش فرم است. -
POST /postsبرای ارسال دادهها به کنترلر است.
4. ایجاد کنترلر
حالا باید کنترلری بسازیم که دادهها را دریافت کرده و در پایگاه داده ذخیره کند.
در این کنترلر، دو متد create و store را اضافه میکنیم:
در اینجا:
-
متد
createنمای فرم را برمیگرداند. -
متد
storeدادههای فرم را اعتبارسنجی کرده و در پایگاه داده ذخیره میکند.
5. نمایش پیغام موفقیت یا خطا در فرم
برای نمایش پیغامهای موفقیت یا خطا در فرم، از قسمت session لاراول استفاده میکنیم. در فایل Blade فرم، بعد از شروع فرم میتوانیم این پیغامها را نمایش دهیم.
6. نتیجه
حالا با رفتن به /posts/create در مرورگر، فرم ایجاد پست نمایش داده میشود. وقتی کاربر فرم را پر کرده و ارسال میکند، دادهها به کنترلر ارسال میشود، اعتبارسنجی میشوند، و در پایگاه داده ذخیره میشوند.
✨ جمعبندی
با این روش میتوانید فرمهای ساده در لاراول ایجاد کنید و دادهها را به کنترلر ارسال کرده و در پایگاه داده ذخیره کنید. این روش برای ساخت هر نوع فرم و ذخیره دادهها در لاراول کاربرد دارد.
اگر نیاز به امکانات بیشتری دارید، مانند آپلود فایل، اعتبارسنجی پیچیدهتر یا ارسال دادهها به API، میتوانم به شما کمک کنم. اگر سوالی دارید، حتماً بپرسید!