ایجاد یک کنترلر برای عملیات CRUD
موضوعات
- مفاهیم پایه CRUD
- ایجاد کنترلر و مسیرهای مربوطه بصورت دستی
- ایجاد خودکار کنترلر و متدها توسط لاراول
- ایجاد خودکار مسیرها توسط لاراول
- استثنا کردن برخی مسیر
- تنها برخی از مسیرهای ایجاد شود
- ایجاد کنترلر برای api
- ایجاد روت برای api
عملیات CRUD (مخفف Create، Read، Update، Delete) چهار عمل اصلی هستند که در برنامهنویسی و مدیریت پایگاه دادهها برای ایجاد، خواندن، بهروزرسانی و حذف دادهها بهکار میروند. این عملیات پایهایترین و اساسیترین وظایف در هر سیستم مدیریت پایگاه داده یا API محسوب میشوند
هر کنترلر CRUD باید 7 متد است
| شماره | متد | URI | متد کنترلر | کاربرد | نام مسیر |
| 1 | GET | /posts | index | نمایش لیست پستها | posts.index |
| 2 | GET | /posts/create | create | نمایش فرم ایجاد پست | posts.create |
| 3 | POST | /posts | store | ذخیره پست جدید | posts.store |
| 4 | GET | /posts/{post} | show | نمایش یک پست | posts.show |
| 5 | GET | /posts/{post}/edit | edit | نمایش فرم ویرایش | posts.edit |
| 6 | PUT | /posts/{post} | update | بهروزرسانی پست | posts.update |
| 7 | DELETE | /posts/{post} | destroy | حذف پست | posts.destroy |
class postController extends Controller
{
function index(){
}
function create(){
}
function show(){
}
function store(){
}
function edit(){
}
function update(){
}
function destroy(){
}
}
مسیرها
Route::controller(postController::class)->group(function(){
Route::get('/post/index','index');
Route::get('/post/create','create');
Route::get('/post/show','show');
Route::get('/post/edit','edit');
Route::put('/post/update','update');
Route::post('/post/store','store');
Route::delete('/post/destroy','destroy');
}
در لاراول برای راحتی میتوان از دستور زیر برای ساخت خودکار کنترلر استفاده کرد
php artisan make:controller postController --resource
این دستور مسیرهای مورد نیاز را بصورت خودکار ایجاد میکند
route::resource('posts',postController::class);
مشاهده روت های موجود
php artisan route:list
حذف برخی روت ها
route::resource('posts',postController::class)->except(['edit','create']);
ایجاد روتهای مشخص
route::resource('posts',postController::class)->only(['edit','create']);
ایجاد کنترلر برای api
php artisan make:controller postController --api
فرق بین resource و api در این است که در هنگام استفاده از api نیازی به create(فرم ساخت ) و edit(فرم ویرایش) نداریم زیرا فرم ها در برنامه کلاینت وجود دارد و تنها json استفاده می شود
ایجاد روت برای api
route::apiResource('posts',postController::class);