عملیات CRUD در لاراول

  • 10 اسفند 1403
0 دیدگاه
خلاصه مطلب

در این مقاله، مراحل پیاده‌سازی عملیات CRUD در لاراول را بررسی کرده‌ایم. ابتدا مدل و مایگریشن را ایجاد کرده، سپس عملیات ایجاد، خواندن، بروزرسانی و حذف داده‌ها را با استفاده از Blade پیاده‌سازی کرده‌ایم.

عملیات CRUD در لاراول


CRUD مخفف چهار عملیات اصلی در مدیریت داده‌ها است:

  • Create (ایجاد)
  • Read (خواندن)
  • Update (به‌روزرسانی)
  • Delete (حذف)

لاراول یک فریمورک PHP قدرتمند است که پیاده‌سازی عملیات CRUD را بسیار آسان می‌کند. در این مقاله، نحوه پیاده‌سازی CRUD در لاراول را با استفاده از Blade توضیح خواهیم داد.


۱. ایجاد مدل، مایگریشن و کنترلر


ابتدا یک مدل به همراه مایگریشن و کنترلر برای مدیریت داده‌ها ایجاد می‌کنیم:

php artisan make:model Post -mcr

این دستور یک مدل Post، یک کنترلر PostController و یک فایل مایگریشن ایجاد می‌کند.


تعریف ساختار جدول در مایگریشن


فایل مایگریشن در مسیر database/migrations قرار دارد. ساختار جدول را در این فایل مشخص می‌کنیم:

public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('content');
        $table->timestamps();
    });
}

سپس برای اعمال این تغییرات در پایگاه داده، دستور زیر را اجرا می‌کنیم:

php artisan migrate


۲. پیاده‌سازی عملیات CRUD در کنترلر


ایجاد (Create) همراه با اعتبارسنجی


در PostController متد store را به صورت زیر تعریف می‌کنیم:

public function store(Request $request)
{
    $validated = $request->validate([
        'title' => 'required|string|max:255',
        'content' => 'required|string',
    ]);

    Post::create($validated);
    
    return redirect()->route('posts.index')->with('success', 'Post created successfully.');
}

در مدل Post ویژگی fillable را مشخص می‌کنیم:

protected $fillable = ['title', 'content'];


خواندن (Read) اطلاعات و نمایش در Blade


public function index()
{
    $posts = Post::all();
    return view('posts.index', compact('posts'));
}

در فایل resources/views/posts/index.blade.php:

@extends('layouts.app')
@section('content')
    <h1>All Posts</h1>
    <a href="{{ route('posts.create') }}">Create New Post</a>
    <ul>
        @foreach($posts as $post)
            <li>
                <a href="{{ route('posts.show', $post->id) }}">{{ $post->title }}</a>
            </li>
        @endforeach
    </ul>
@endsection


مشاهده جزئیات یک پست


public function show($id)
{
    $post = Post::findOrFail($id);
    return view('posts.show', compact('post'));
}

در فایل resources/views/posts/show.blade.php:

@extends('layouts.app')
@section('content')
    <h1>{{ $post->title }}</h1>
    <p>{{ $post->content }}</p>
    <a href="{{ route('posts.edit', $post->id) }}">Edit</a>
    <form action="{{ route('posts.destroy', $post->id) }}" method="POST">
        @csrf
        @method('DELETE')
        <button type="submit">Delete</button>
    </form>
@endsection


به‌روزرسانی (Update) با فرم Blade


public function edit($id)
{
    $post = Post::findOrFail($id);
    return view('posts.edit', compact('post'));
}

public function update(Request $request, $id)
{
    $post = Post::findOrFail($id);
    $validated = $request->validate([
        'title' => 'required|string|max:255',
        'content' => 'required|string',
    ]);

    $post->update($validated);
    return redirect()->route('posts.index')->with('success', 'Post updated successfully.');
}

در resources/views/posts/edit.blade.php:

@extends('layouts.app')
@section('content')
    <h1>Edit Post</h1>
    <form action="{{ route('posts.update', $post->id) }}" method="POST">
        @csrf
        @method('PUT')
        <label>Title:</label>
        <input type="text" name="title" value="{{ $post->title }}" required>
        <label>Content:</label>
        <textarea name="content" required>{{ $post->content }}</textarea>
        <button type="submit">Update</button>
    </form>
@endsection


حذف (Delete) با بررسی وجود رکورد


public function destroy($id)
{
    $post = Post::findOrFail($id);
    $post->delete();
    return redirect()->route('posts.index')->with('success', 'Post deleted successfully.');
}


۳. تعریف مسیرها در routes/web.php


use App\Http\Controllers\PostController;

Route::resource('posts', PostController::class);

این دستور تمام عملیات CRUD را برای مدل Post در Blade لاراول پیاده‌سازی می‌کند.


نتیجه‌گیری


در این مقاله، مراحل کامل پیاده‌سازی عملیات CRUD در لاراول را با استفاده از Blade بررسی کردیم. این روش برای توسعه برنامه‌های وب با قابلیت نمایش سمت سرور بسیار مناسب است.

در بهبود مقاله شریک باشید

قبل از ثبت نظر باید وارد حساب کاربری خود شوید و اطلاعات پروفایل را کامل کنید

ثبت نام یا ورود
قوانین ارسال دیدگاه

لطفاً قبل از ارسال دیدگاه، قوانین زیر را مطالعه کنید:

  • دیدگاه باید مرتبط با موضوع مقاله باشد.
  • از به‌کار بردن الفاظ نامناسب خودداری کنید.
  • تبلیغات در بخش نظرات مجاز نیست.