How To Create A Laravel CRUD System With Image Upload Tutorial.

Hello Geek, Laravel is a PHP framework that makes it easy to build robust and modern web applications. In this tutorial, we’ll learn how to create a basic CRUD (Create, Read, Update, Delete) operation with image upload functionality using Laravel.

First, we’ll create a new Laravel project using the following command:

composer create-project --prefer-dist laravel/laravel blog

Next, we’ll create a new model and a migration for our blog posts:

php artisan make:model Post -m

In the migration file, we’ll add the necessary columns for our blog post, including an image field.

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

Next, we’ll run the migration to create the posts table:

php artisan migrate

After the migration is complete, we’ll create a new controller for our blog posts:

php artisan make:controller PostController

In the controller, we’ll add the necessary methods for our CRUD operations, including a method for handling image uploads.

public function store(Request $request)
{
    $request->validate([
        'title' => 'required',
        'body' => 'required',
        'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);

    $imageName = time().'.'.$request->image->extension();  
    $request->image->move(public_path('images'), $imageName);

    $post = new Post([
        'title' => $request->get('title'),
        'body' => $request->get('body'),
        'image' => $imageName
    ]);
    $post->save();
    return redirect('/posts')->with('success', 'Post saved!');
}

Finally, we’ll create the views for our blog posts, including a form for creating new posts with an image upload field.

This tutorial provides a basic understanding of how to create a CRUD operation with image upload functionality using Laravel. With this foundation, you can build more complex and advanced web applications with ease.

All the best nerd!

Leave a Reply