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.