Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Laravel CRUD How to


Laravel CRUD How to


Here are the key steps to implement a basic CRUD (Create, Read, Update, Delete) functionality in a Laravel application:

1. Set up the database:
- Create a new database and configure the connection details in the `.env` file.
- Use Laravel's migration system to create a database table for your CRUD operations.

2. Create a Model:
- Generate a model using the Artisan command `php artisan make:model ModelName`.
- Define the `$fillable` property in the model to specify the fields that can be mass-assigned.

3. Create a Controller:
- Generate a controller using the Artisan command `php artisan make:controller ModelNameController --resource`.
- Implement the CRUD methods in the controller:
- `index()`: Display a list of all records.
- `create()`: Show the form to create a new record.
- `store()`: Handle the form submission to create a new record.
- `edit($id)`: Show the form to edit an existing record.
- `update($id)`: Handle the form submission to update an existing record.
- `destroy($id)`: Handle the deletion of a record.

4. Define Routes:
- In the `routes/web.php` file, define the routes for your CRUD operations using the `Route::resource()` method.

5. Create Views:
- Generate the necessary Blade view files (e.g., `index.blade.php`, `create.blade.php`, `edit.blade.php`) to display the CRUD functionality.
- Use the controller methods to pass data to the views and handle form submissions.

6. Test and Deploy:
- Run the application locally and test the CRUD functionality.
- Deploy the application to a production server and ensure the CRUD operations work as expected.

Here's an example of how the code might look:

php
// app/Http/Controllers/PostController.php
class PostController extends Controller
{
    public function index()
    {
        $posts = Post::all();
        return view('posts.index', compact('posts'));
    }

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

    public function store(Request $request)
    {
        $post = Post::create($request->all());
        return redirect()->route('posts.show', $post->id);
    }

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

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

    public function update(Request $request, $id)
    {
        $post = Post::findOrFail($id);
        $post->update($request->all());
        return redirect()->route('posts.show', $post->id);
    }

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

This is a basic example, and you may need to customize it further based on your specific requirements. The key is to follow the MVC (Model-View-Controller) pattern and leverage Laravel's built-in features to simplify the CRUD implementation.

Citations:
[1] https://techvblogs.com/blog/laravel-9-crud-application-tutorial-with-example
[2] https://magecomp.com/blog/crud-operation-laravel-8/
[3] https://kinsta.com/blog/laravel-crud/
[4] https://www.youtube.com/watch?v=MOXMzNuQRFE
[5] https://www.javatpoint.com/laravel-crud