Hello Devs,

In this tutorial, we are going to learn how to create resource route and resource controller in laravel app.

CRUD Route

Route::get('blogs',['as'=>'blogs.index','uses'=>'BlogController@index']);

Route::post('blogs/create',['as'=>'blogs.store','uses'=>'BlogController@store']);

Route::get('blogs/edit/{id}',['as'=>'blogs.edit','uses'=>'BlogController@edit']);

Route::patch('blogs/{id}',['as'=>'blogs.update','uses'=>'BlogController@update']);

Route::delete('blogs/{id}',['as'=>'blogs.destroy','uses'=>'BlogController@destroy']);

Route::get('blogs/{id}',['as'=>'blogs.view','uses'=>'BlogController@view']);


Resource Route

Route::resource('blogs', 'BlogController');

Run this command:

php artisan route:list
+--------+-----------+-------------------+---------------+---------------------------------------------+--------------+

| Domain | Method    | URI               | Name          | Action                                      | Middleware   |

+--------+-----------+-------------------+---------------+---------------------------------------------+--------------+

|        | GET|HEAD  | api/user          |               | Closure                                     | api,auth:api |

|        | GET|HEAD  | blogs             | blogs.index   | App\Http\Controllers\BlogController@index   | web          |

|        | POST      | blogs             | blogs.store   | App\Http\Controllers\BlogController@store   | web          |

|        | GET|HEAD  | blogs/create      | blogs.create  | App\Http\Controllers\BlogController@create  | web          |

|        | GET|HEAD  | blogs/{blog}      | blogs.show    | App\Http\Controllers\BlogController@show    | web          |

|        | PUT|PATCH | blogs/{blog}      | blogs.update  | App\Http\Controllers\BlogController@update  | web          |

|        | DELETE    | blogs/{blog}      | blogs.destroy | App\Http\Controllers\BlogController@destroy | web          |

|        | GET|HEAD  | blogs/{blog}/edit | blogs.edit    | App\Http\Controllers\BlogController@edit    | web          |

+--------+-----------+-------------------+---------------+---------------------------------------------+--------------+


Resource Controller Command

php artisan make:controller BlogController --resource --model=Blog

app/Http/Controllers/BlogController.php

<?php

namespace App\Http\Controllers;

use App\Blog;
use Illuminate\Http\Request;

class BlogController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {

   
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {

       
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {

        
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Blog  $blog
     * @return \Illuminate\Http\Response
     */
    public function show(Blog $blog)
    {

        
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Blog  $blog
     * @return \Illuminate\Http\Response
     */
    public function edit(Blog $blog)
    {

        
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Blog  $blog
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Blog $blog)
    {

        
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Blog  $blog
     * @return \Illuminate\Http\Response
     */
    public function destroy(Blog $blog)
    {

        
    }
}


I hope this example helps you.