آموزش ساخت CRUD ساده در Laravel با Resource Controller

ایجاد (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 دستور زیر را اجرا کنید:

php artisan make:migration create_sharks_table --table=sharks --create

حالا داخل فایل migration فیلدهای زیر را اضافه کنید:

  • name

  • email

  • shark_level

سپس migration را اجرا کنید:

php artisan migrate

اکنون جدول sharks ساخته شده است.


ساخت مدل Eloquent

داخل پوشه app/models فایل زیر را بسازید:

class shark extends Eloquent
{
}

همین کافی است.
Eloquent به‌صورت پیش‌فرض این مدل را به جدول sharks وصل می‌کند.


ساخت Resource Controller

برای ساخت Resource Controller از artisan استفاده می‌کنیم:

php artisan make:controller sharkController --resource

این دستور یک controller با تمام متدهای لازم ایجاد می‌کند:

  • index

  • create

  • store

  • show

  • edit

  • update

  • destroy


تنظیم Routes

داخل فایل routes.php این خط را اضافه کنید:

Route::resource('sharks', 'sharkController');

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ها

داخل پوشه:

app/views/sharks

این فایل‌ها را بسازید:

  • index.blade.php

  • create.blade.php

  • show.blade.php

  • edit.blade.php


اتصال همه بخش‌ها به هم

نمایش همه رکوردها — index()

در این متد همه sharkها از دیتابیس گرفته می‌شوند:

$sharks = shark::all();

return View::make(‘sharks.index’)
->with(‘sharks’, $sharks);

در view هم روی داده‌ها loop می‌زنیم و در جدول نمایش می‌دهیم.


ساخت رکورد جدید — create()

فقط فرم ساخت shark را نمایش می‌دهد:

return View::make('sharks.create');

ذخیره رکورد — store()

در این متد:

  1. اعتبارسنجی انجام می‌شود

  2. اگر خطا بود برگشت داده می‌شود

  3. اگر درست بود داده در دیتابیس ذخیره می‌شود

$shark = new shark;
$shark->name = Input::get('name');
$shark->email = Input::get('email');
$shark->shark_level = Input::get('shark_level');
$shark->save();

نمایش یک رکورد — show()

$shark = shark::find($id);

return View::make(‘sharks.show’)
->with(‘shark’, $shark);


ویرایش رکورد — edit()

ابتدا رکورد از دیتابیس گرفته می‌شود، سپس فرم ویرایش نمایش داده می‌شود:

$shark = shark::find($id);

return View::make(‘sharks.edit’)
->with(‘shark’, $shark);


بروزرسانی رکورد — update()

تقریباً مثل store است، فقط ابتدا رکورد را پیدا می‌کنیم:

$shark = shark::find($id);

$shark->name = Input::get(‘name’);
$shark->email = Input::get(’email’);
$shark->shark_level = Input::get(‘shark_level’);
$shark->save();


حذف رکورد — destroy()

$shark = shark::find($id);
$shark->delete();

بعد از حذف، کاربر به صفحه لیست برمی‌گردد.


نتیجه‌گیری

حالا یاد گرفتید که چگونه با:

  • ساخت controller

  • اضافه کردن یک خط route

  • ساخت view

یک سیستم CRUD کامل در Laravel بسازید.

Resource Controller پایه‌ی اصلی بسیاری از پروژه‌های Laravel است و در سناریوهای مختلف قابل استفاده می‌باشد.

از همراهی شما با پارمین کلود سپاسگزاریم.

Click to rate this post!
[Total: 0 Average: 0]

نظرات کاربران

دیدگاهی بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *