ایجاد (Create)، خواندن (Read)، بروزرسانی (Update) و حذف (Delete) دادهها تقریباً در همهی اپلیکیشنها استفاده میشود.
Laravel با استفاده از Resource Controller این فرآیند را بسیار ساده میکند. Resource Controller میتواند کار را خیلی راحتتر کند و از قابلیتهای جذاب routing در Laravel استفاده میکند.
در این آموزش، مراحل ساخت یک اپلیکیشن CRUD کامل با Resource Controller را بررسی میکنیم.
در این مثال، یک پنل ادمین میسازیم که بتواند یک resource را ایجاد، مشاهده، ویرایش و حذف کند. برای نمونه از موجودیتی به نام shark استفاده میکنیم. همچنین از Eloquent ORM هم بهره میبریم.
در این آموزش یاد میگیریم:
-
تنظیم دیتابیس و مدلها
-
ساخت Resource Controller و routes آن
-
ساخت viewهای موردنیاز
-
توضیح هر متد داخل Resource Controller
برای شروع به controller، routes و فایلهای view نیاز داریم.
آمادهسازی دیتابیس
ساخت Migration برای جدول sharks
برای انجام عملیات CRUD باید دیتابیس داشته باشیم. در ترمینال داخل ریشه پروژه Laravel دستور زیر را اجرا کنید:
حالا داخل فایل migration فیلدهای زیر را اضافه کنید:
-
name
-
email
-
shark_level
سپس migration را اجرا کنید:
اکنون جدول sharks ساخته شده است.
ساخت مدل Eloquent
داخل پوشه app/models فایل زیر را بسازید:
همین کافی است.
Eloquent بهصورت پیشفرض این مدل را به جدول sharks وصل میکند.
ساخت Resource Controller
برای ساخت Resource Controller از artisan استفاده میکنیم:
این دستور یک controller با تمام متدهای لازم ایجاد میکند:
-
index
-
create
-
store
-
show
-
edit
-
update
-
destroy
تنظیم Routes
داخل فایل routes.php این خط را اضافه کنید:
Laravel بهصورت خودکار همهی routeهای CRUD را میسازد.
مثلاً:
| متد HTTP | آدرس | متد Controller |
|---|---|---|
| GET | /sharks | index |
| GET | /sharks/create | create |
| POST | /sharks | store |
| GET | /sharks/{id} | show |
| GET | /sharks/{id}/edit | edit |
| PUT | /sharks/{id} | update |
| DELETE | /sharks/{id} | destroy |
ساخت Viewها
داخل پوشه:
این فایلها را بسازید:
-
index.blade.php
-
create.blade.php
-
show.blade.php
-
edit.blade.php
اتصال همه بخشها به هم
نمایش همه رکوردها — index()
در این متد همه sharkها از دیتابیس گرفته میشوند:
در view هم روی دادهها loop میزنیم و در جدول نمایش میدهیم.
ساخت رکورد جدید — create()
فقط فرم ساخت shark را نمایش میدهد:
ذخیره رکورد — store()
در این متد:
-
اعتبارسنجی انجام میشود
-
اگر خطا بود برگشت داده میشود
-
اگر درست بود داده در دیتابیس ذخیره میشود
نمایش یک رکورد — show()
ویرایش رکورد — edit()
ابتدا رکورد از دیتابیس گرفته میشود، سپس فرم ویرایش نمایش داده میشود:
بروزرسانی رکورد — update()
تقریباً مثل store است، فقط ابتدا رکورد را پیدا میکنیم:
حذف رکورد — destroy()
بعد از حذف، کاربر به صفحه لیست برمیگردد.
نتیجهگیری
حالا یاد گرفتید که چگونه با:
-
ساخت controller
-
اضافه کردن یک خط route
-
ساخت view
یک سیستم CRUD کامل در Laravel بسازید.
Resource Controller پایهی اصلی بسیاری از پروژههای Laravel است و در سناریوهای مختلف قابل استفاده میباشد.
از همراهی شما با پارمین کلود سپاسگزاریم.
نظرات کاربران