Xây dựng tính năng thêm, sửa và xóa dữ liệu trong Laravel

Để xây dựng tính năng thêm, sửa và xóa dữ liệu trong Laravel, hãy làm theo các bước sau:

Định nghĩa route

Đầu tiên, hãy định nghĩa các route để xử lý các hành động thêm, sửa và xóa.

Route::get('/users', 'UserController@index')->name('users.index');
Route::get('/users/create', 'UserController@create')->name('users.create');
Route::post('/users', 'UserController@store')->name('users.store');
Route::get('/users/{id}/edit', 'UserController@edit')->name('users.edit');
Route::put('/users/{id}', 'UserController@update')->name('users.update');
Route::delete('/users/{id}', 'UserController@destroy')->name('users.destroy');

Trong ví dụ trên, chúng ta định nghĩa các route cho danh sách người dùng, form thêm mới, lưu dữ liệu mới, form chỉnh sửa, cập nhật dữ liệu và xóa dữ liệu.

 

Định nghĩa Controller

Tiếp theo, hãy định nghĩa các phương thức trong Controller để xử lý các yêu cầu từ route.

<?php

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function index()
    {
        $users = User::all();
        return view('users.index', compact('users'));
    }

    public function create()
    {
        return view('users.create');
    }

    public function store(Request $request)
    {
        $validatedData = $request->validate([
            'name' => 'required',
            'email' => 'required|email',
        ]);

        $user = User::create($validatedData);

        return redirect()->route('users.index')->with('success', 'User created successfully.');
    }

    public function edit($id)
    {
        $user = User::findOrFail($id);
        return view('users.edit', compact('user'));
    }

    public function update(Request $request, $id)
    {
        $validatedData = $request->validate([
            'name' => 'required',
            'email' => 'required|email',
        ]);

        $user = User::findOrFail($id);
        $user->update($validatedData);

        return redirect()->route('users.index')->with('success', 'User updated successfully.');
    }

    public function destroy($id)
    {
        $user = User::findOrFail($id);
        $user->delete();

        return redirect()->route('users.index')->with('success', 'User deleted successfully.');
    }
}

Trong mỗi phương thức, bạn có thể thực hiện các hành động tương ứng như hiển thị biểu mẫu, lưu trữ dữ liệu mới, cập nhật dữ liệu hiện có và xóa dữ liệu.

 

Tạo giao diện người dùng

Bạn cần tạo các giao diện người dùng (views) tương ứng để hiển thị form và xem dữ liệu.

Giao diện danh sách người dùng (views/users/index.blade.php):

@foreach($users as $user)
    <p>{{ $user->name }} - {{ $user->email }}</p>
@endforeach

Giao diện thêm mới người dùng (views/users/create.blade.php):

<form method="POST" action="{{ route('users.store') }}">
    @csrf
    <input type="text" name="name" placeholder="Name">
    <input type="email" name="email" placeholder="Email">
    <button type="submit">Create User</button>
</form>

Giao diện chỉnh sửa người dùng (views/users/edit.blade.php):

<form method="POST" action="{{ route('users.update', $user->id) }}">
    @csrf
    @method('PUT')
    <input type="text" name="name" value="{{ $user->name }}">
    <input type="email" name="email" value="{{ $user->email }}">
    <button type="submit">Update User</button>
</form>

 

Xử lý dữ liệu

Trong phương thức store và update trong Controller, bạn có thể sử dụng các phương thức Eloquent để lưu và cập nhật dữ liệu trong cơ sở dữ liệu.

 

Hiển thị thông báo

Cuối cùng, bạn có thể hiển thị thông báo thành công hoặc lỗi cho người dùng sau khi thực hiện các thao tác thêm, sửa và xóa.

  • Sử dụng Laravel Session để hiển thị thông báo thành công hoặc lỗi trong views.

 

Với các bước trên, bạn đã xây dựng thành công tính năng thêm, sửa và xóa dữ liệu trong Laravel.