How to create Laravel Resource Controller with resource route?
In this post we will give you information about How to create Laravel Resource Controller with resource route?. Hear we will give you detail about How to create Laravel Resource Controller with resource route?And how to use it also give you demo for it if it is necessary.
In this tutorial, I will let you know how to create resource controller with resource routes in Laravel 5.
In every application, it is common to have create, read, update and delete (CRUD) functionality.
Laravel resource controller makes it easier to create CRUD application around resources.
For this post, we will create a simple structure only with the help of some cool resource routes and controllers.
Laravel provides so many interesting feature that you can use in your application to save lots of time.
You can easily create a resource controller using artisan tool.
Resource route
First, i will create a resource route that handle different routes.
- Route::resource('users','UserController');
Route::resource('users', 'UserController');
Above route will handle following routes :
- Route::get('users',['as'=>'users.index','uses'=>'UserController@index']);
- Route::post('users/create',['as'=>'users.store','uses'=>'UserController@store']);
- Route::get('users/edit/{id}',['as'=>'users.edit','uses'=>'UserController@edit']);
- Route::patch('users/{id}',['as'=>'users.update','uses'=>'UserController@update']);
- Route::delete('users/{id}',['as'=>'users.destroy','uses'=>'UserController@destroy']);
- Route::get('users/{id}',['as'=>'users.show','uses'=>'UserController@show']);
Route::get('users',['as'=>'users.index','uses'=>'UserController@index']); Route::post('users/create',['as'=>'users.store','uses'=>'UserController@store']); Route::get('users/edit/{id}',['as'=>'users.edit','uses'=>'UserController@edit']); Route::patch('users/{id}',['as'=>'users.update','uses'=>'UserController@update']); Route::delete('users/{id}',['as'=>'users.destroy','uses'=>'UserController@destroy']); Route::get('users/{id}',['as'=>'users.show','uses'=>'UserController@show']);
Laravel provides artisan command to check route lists.
php artisan route:list
You will see following output when you run above artisan command :
+--------+-----------+-------------------+---------------+---------------------------------------------+--------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+-----------+-------------------+---------------+---------------------------------------------+--------------+ | | GET|HEAD | api/user | | Closure | api,auth:api | | | GET|HEAD | users | users.index | AppHttpControllersUserController@index | web | | | POST | users | users.store | AppHttpControllersUserController@store | web | | | GET|HEAD | users/create | users.create | AppHttpControllersUserController@create | web | | | GET|HEAD | users/{user} | users.show | AppHttpControllersUserController@show | web | | | PUT|PATCH | users/{user} | users.update | AppHttpControllersUserController@update | web | | | DELETE | users/{user} | users.destroy | AppHttpControllersUserController@destroy | web | | | GET|HEAD | users/{user}/edit | users.edit | AppHttpControllersUserController@edit | web | +--------+-----------+-------------------+---------------+---------------------------------------------+--------------+
To know more about resourceful route click here : Reourceful routing
Resource Controller
Now i will create resource controller by using artisan command.
Run artisan command from command line in the root directory of laravel application.
php artisan make:controller UserController --resource --model=user
By running above command, you will see resource controller “UserController” with all the method we need.
app/Http/Controllers/UserController.php
- <?php
- namespace AppHttpControllers;
- use Appuser;
- use IlluminateHttpRequest;
- class UserController extends Controller
- {
- /**
- * Display a listing of the resource.
- *
- * @return IlluminateHttpResponse
- */
- public functionindex()
- {
- //
- }
- /**
- * Show the form for creating a new resource.
- *
- * @return IlluminateHttpResponse
- */
- public functioncreate()
- {
- //
- }
- /**
- * Store a newly created resource in storage.
- *
- * @param IlluminateHttpRequest $request
- * @return IlluminateHttpResponse
- */
- public functionstore(Request $request)
- {
- //
- }
- /**
- * Display the specified resource.
- *
- * @param Appuser $user
- * @return IlluminateHttpResponse
- */
- public functionshow(user $user)
- {
- //
- }
- /**
- * Show the form for editing the specified resource.
- *
- * @param Appuser $user
- * @return IlluminateHttpResponse
- */
- public functionedit(user $user)
- {
- //
- }
- /**
- * Update the specified resource in storage.
- *
- * @param IlluminateHttpRequest $request
- * @param Appuser $user
- * @return IlluminateHttpResponse
- */
- public functionupdate(Request $request, user $user)
- {
- //
- }
- /**
- * Remove the specified resource from storage.
- *
- * @param Appuser $user
- * @return IlluminateHttpResponse
- */
- public functiondestroy(user $user)
- {
- //
- }
- }
<?php namespace AppHttpControllers; use Appuser; use IlluminateHttpRequest; class UserController extends Controller { /** * Display a listing of the resource. * * @return IlluminateHttpResponse */ public function index() { // } /** * Show the form for creating a new resource. * * @return IlluminateHttpResponse */ public function create() { // } /** * Store a newly created resource in storage. * * @param IlluminateHttpRequest $request * @return IlluminateHttpResponse */ public function store(Request $request) { // } /** * Display the specified resource. * * @param Appuser $user * @return IlluminateHttpResponse */ public function show(user $user) { // } /** * Show the form for editing the specified resource. * * @param Appuser $user * @return IlluminateHttpResponse */ public function edit(user $user) { // } /** * Update the specified resource in storage. * * @param IlluminateHttpRequest $request * @param Appuser $user * @return IlluminateHttpResponse */ public function update(Request $request, user $user) { // } /** * Remove the specified resource from storage. * * @param Appuser $user * @return IlluminateHttpResponse */ public function destroy(user $user) { // } }
Finally, we have our resource controller with resource routes, so this is really quite easy to create a resource controller in Laravel.
I hope this will help you when you are starting to create application with Laravel 5.
Hope this code and post will helped you for implement How to create Laravel Resource Controller with resource route?. if you need any help or any feedback give it in comment section or you have good idea about this post you can give it comment section. Your comment will help us for help you more and improve us. we will give you this type of more interesting post in featured also so, For more interesting post and code Keep reading our blogs