How to create Laravel Resource Controller with resource route?

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.

  1. Route::resource('users','UserController');
Route::resource('users', 'UserController');

Above route will handle following routes :

  1. Route::get('users',['as'=>'users.index','uses'=>'UserController@index']);
  2. Route::post('users/create',['as'=>'users.store','uses'=>'UserController@store']);
  3. Route::get('users/edit/{id}',['as'=>'users.edit','uses'=>'UserController@edit']);
  4. Route::patch('users/{id}',['as'=>'users.update','uses'=>'UserController@update']);
  5. Route::delete('users/{id}',['as'=>'users.destroy','uses'=>'UserController@destroy']);
  6. 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

  1. <?php
  2. namespace AppHttpControllers;
  3. use Appuser;
  4. use IlluminateHttpRequest;
  5. class UserController extends Controller
  6. {
  7. /**
  8. * Display a listing of the resource.
  9. *
  10. * @return IlluminateHttpResponse
  11. */
  12. public functionindex()
  13. {
  14. //
  15. }
  16. /**
  17. * Show the form for creating a new resource.
  18. *
  19. * @return IlluminateHttpResponse
  20. */
  21. public functioncreate()
  22. {
  23. //
  24. }
  25. /**
  26. * Store a newly created resource in storage.
  27. *
  28. * @param IlluminateHttpRequest $request
  29. * @return IlluminateHttpResponse
  30. */
  31. public functionstore(Request $request)
  32. {
  33. //
  34. }
  35. /**
  36. * Display the specified resource.
  37. *
  38. * @param Appuser $user
  39. * @return IlluminateHttpResponse
  40. */
  41. public functionshow(user $user)
  42. {
  43. //
  44. }
  45. /**
  46. * Show the form for editing the specified resource.
  47. *
  48. * @param Appuser $user
  49. * @return IlluminateHttpResponse
  50. */
  51. public functionedit(user $user)
  52. {
  53. //
  54. }
  55. /**
  56. * Update the specified resource in storage.
  57. *
  58. * @param IlluminateHttpRequest $request
  59. * @param Appuser $user
  60. * @return IlluminateHttpResponse
  61. */
  62. public functionupdate(Request $request, user $user)
  63. {
  64. //
  65. }
  66. /**
  67. * Remove the specified resource from storage.
  68. *
  69. * @param Appuser $user
  70. * @return IlluminateHttpResponse
  71. */
  72. public functiondestroy(user $user)
  73. {
  74. //
  75. }
  76. }
<?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.

Label :

PHP

OOP

Object Oriented Programming

Laravel PHP Framework

How To

MVC

Web Development

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

For More Info See :: laravel And github

Leave a Comment

Your email address will not be published. Required fields are marked *

  +  54  =  61

We're accepting well-written guest posts and this is a great opportunity to collaborate : Contact US