{"id":2070,"date":"2024-06-18T12:13:53","date_gmt":"2024-06-18T12:13:53","guid":{"rendered":"https:\/\/www.devopssupport.in\/blog\/?p=2070"},"modified":"2024-06-20T12:00:00","modified_gmt":"2024-06-20T12:00:00","slug":"comprehensive-guide-to-performing-crud-operations-with-laravel","status":"publish","type":"post","link":"https:\/\/www.devopssupport.in\/blog\/comprehensive-guide-to-performing-crud-operations-with-laravel\/","title":{"rendered":"How to Perform CRUD Operations with Laravel"},"content":{"rendered":"\n<p>CRUD operations are fundamental to web applications. Here&#8217;s a step-by-step guide to setting up and performing CRUD operations in a Laravel application.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"808\" height=\"449\" src=\"https:\/\/www.devopssupport.in\/blog\/wp-content\/uploads\/2024\/06\/image-9.png\" alt=\"\" class=\"wp-image-2071\" style=\"width:1122px;height:auto\" srcset=\"https:\/\/www.devopssupport.in\/blog\/wp-content\/uploads\/2024\/06\/image-9.png 808w, https:\/\/www.devopssupport.in\/blog\/wp-content\/uploads\/2024\/06\/image-9-300x167.png 300w, https:\/\/www.devopssupport.in\/blog\/wp-content\/uploads\/2024\/06\/image-9-768x427.png 768w\" sizes=\"auto, (max-width: 808px) 100vw, 808px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Setting Up Laravel<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Install Laravel<\/strong>:<br>Use Composer to create a new Laravel project. Open your terminal and run:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   composer create-project --prefer-dist laravel\/laravel crud-example<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Configure the Database<\/strong>:<br>Update your <code>.env<\/code> file with your database details:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   DB_CONNECTION=mysql\n   DB_HOST=127.0.0.1\n   DB_PORT=3306\n   DB_DATABASE=your_database\n   DB_USERNAME=your_username\n   DB_PASSWORD=your_password<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Run Migrations<\/strong>:<br>Execute the migrations to create the necessary database tables:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   php artisan migrate<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Creating a Model and Migration<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Generate a Model and Migration<\/strong>:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   php artisan make:model Item -m<\/code><\/pre>\n\n\n\n<p>This command creates an <code>Item<\/code> model and a migration file.<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Define the Database Schema<\/strong>:<br>Open the generated migration file in <code>database\/migrations\/<\/code> and define your table schema:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   public function up()\n   {\n       Schema::create('items', function (Blueprint $table) {\n           $table-&gt;id();\n           $table-&gt;string('name');\n           $table-&gt;text('description')-&gt;nullable();\n           $table-&gt;timestamps();\n       });\n   }<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Run the Migration<\/strong>:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   php artisan migrate<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Setting Up Routes<\/h3>\n\n\n\n<p>Open <code>routes\/web.php<\/code> and add the routes for CRUD operations:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use App\\Http\\Controllers\\ItemController;\n\nRoute::resource('items', ItemController::class);<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Creating a Controller<\/h3>\n\n\n\n<p>Generate a resource controller to handle CRUD operations:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan make:controller ItemController --resource<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Implementing CRUD Methods in the Controller<\/h3>\n\n\n\n<p>Open <code>app\/Http\/Controllers\/ItemController.php<\/code> and implement the CRUD methods:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>namespace App\\Http\\Controllers;\n\nuse App\\Models\\Item;\nuse Illuminate\\Http\\Request;\n\nclass ItemController extends Controller\n{\n    public function index()\n    {\n        $items = Item::all();\n        return view('items.index', compact('items'));\n    }\n\n    public function create()\n    {\n        return view('items.create');\n    }\n\n    public function store(Request $request)\n    {\n        $request-&gt;validate(&#91;\n            'name' =&gt; 'required',\n            'description' =&gt; 'nullable',\n        ]);\n\n        Item::create($request-&gt;all());\n        return redirect()-&gt;route('items.index')-&gt;with('success', 'Item created successfully.');\n    }\n\n    public function show(Item $item)\n    {\n        return view('items.show', compact('item'));\n    }\n\n    public function edit(Item $item)\n    {\n        return view('items.edit', compact('item'));\n    }\n\n    public function update(Request $request, Item $item)\n    {\n        $request-&gt;validate(&#91;\n            'name' =&gt; 'required',\n            'description' =&gt; 'nullable',\n        ]);\n\n        $item-&gt;update($request-&gt;all());\n        return redirect()-&gt;route('items.index')-&gt;with('success', 'Item updated successfully.');\n    }\n\n    public function destroy(Item $item)\n    {\n        $item-&gt;delete();\n        return redirect()-&gt;route('items.index')-&gt;with('success', 'Item deleted successfully.');\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Creating Views<\/h3>\n\n\n\n<p>Create Blade template files for each method inside <code>resources\/views\/items\/<\/code>:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Index<\/strong> (<code>index.blade.php<\/code>):<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   &lt;!DOCTYPE html&gt;\n   &lt;html&gt;\n   &lt;head&gt;\n       &lt;title&gt;Items List&lt;\/title&gt;\n   &lt;\/head&gt;\n   &lt;body&gt;\n       &lt;h1&gt;Items List&lt;\/h1&gt;\n       &lt;a href=\"{{ route('items.create') }}\"&gt;Create New Item&lt;\/a&gt;\n       &lt;ul&gt;\n           @foreach ($items as $item)\n               &lt;li&gt;\n                   &lt;a href=\"{{ route('items.show', $item-&gt;id) }}\"&gt;{{ $item-&gt;name }}&lt;\/a&gt;\n                   &lt;a href=\"{{ route('items.edit', $item-&gt;id) }}\"&gt;Edit&lt;\/a&gt;\n                   &lt;form action=\"{{ route('items.destroy', $item-&gt;id) }}\" method=\"POST\"&gt;\n                       @csrf\n                       @method('DELETE')\n                       &lt;button type=\"submit\"&gt;Delete&lt;\/button&gt;\n                   &lt;\/form&gt;\n               &lt;\/li&gt;\n           @endforeach\n       &lt;\/ul&gt;\n   &lt;\/body&gt;\n   &lt;\/html&gt;<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Create<\/strong> (<code>create.blade.php<\/code>):<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   &lt;!DOCTYPE html&gt;\n   &lt;html&gt;\n   &lt;head&gt;\n       &lt;title&gt;Create Item&lt;\/title&gt;\n   &lt;\/head&gt;\n   &lt;body&gt;\n       &lt;h1&gt;Create Item&lt;\/h1&gt;\n       &lt;form action=\"{{ route('items.store') }}\" method=\"POST\"&gt;\n           @csrf\n           &lt;label for=\"name\"&gt;Name:&lt;\/label&gt;\n           &lt;input type=\"text\" name=\"name\" id=\"name\" required&gt;\n           &lt;label for=\"description\"&gt;Description:&lt;\/label&gt;\n           &lt;textarea name=\"description\" id=\"description\"&gt;&lt;\/textarea&gt;\n           &lt;button type=\"submit\"&gt;Save&lt;\/button&gt;\n       &lt;\/form&gt;\n   &lt;\/body&gt;\n   &lt;\/html&gt;<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Show<\/strong> (<code>show.blade.php<\/code>):<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   &lt;!DOCTYPE html&gt;\n   &lt;html&gt;\n   &lt;head&gt;\n       &lt;title&gt;Item Details&lt;\/title&gt;\n   &lt;\/head&gt;\n   &lt;body&gt;\n       &lt;h1&gt;{{ $item-&gt;name }}&lt;\/h1&gt;\n       &lt;p&gt;{{ $item-&gt;description }}&lt;\/p&gt;\n       &lt;a href=\"{{ route('items.index') }}\"&gt;Back to List&lt;\/a&gt;\n   &lt;\/body&gt;\n   &lt;\/html&gt;<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li><strong>Edit<\/strong> (<code>edit.blade.php<\/code>):<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   &lt;!DOCTYPE html&gt;\n   &lt;html&gt;\n   &lt;head&gt;\n       &lt;title&gt;Edit Item&lt;\/title&gt;\n   &lt;\/head&gt;\n   &lt;body&gt;\n       &lt;h1&gt;Edit Item&lt;\/h1&gt;\n       &lt;form action=\"{{ route('items.update', $item-&gt;id) }}\" method=\"POST\"&gt;\n           @csrf\n           @method('PUT')\n           &lt;label for=\"name\"&gt;Name:&lt;\/label&gt;\n           &lt;input type=\"text\" name=\"name\" id=\"name\" value=\"{{ $item-&gt;name }}\" required&gt;\n           &lt;label for=\"description\"&gt;Description:&lt;\/label&gt;\n           &lt;textarea name=\"description\" id=\"description\"&gt;{{ $item-&gt;description }}&lt;\/textarea&gt;\n           &lt;button type=\"submit\"&gt;Update&lt;\/button&gt;\n       &lt;\/form&gt;\n   &lt;\/body&gt;\n   &lt;\/html&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Final Steps<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Start the Development Server<\/strong>:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   php artisan serve<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Access Your Application<\/strong>:<br>Open your browser and navigate to <code>http:\/\/localhost:8000\/items<\/code> to start using your CRUD application.<\/li>\n<\/ol>\n\n\n\n<p>With these steps, you have set up a basic CRUD application using Laravel. Customize and enhance it further according to your requirements.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CRUD operations are fundamental to web applications. Here&#8217;s a step-by-step guide to setting up and performing CRUD operations in a Laravel application. Step 1: Setting Up Laravel&#8230; <\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1612],"tags":[],"class_list":["post-2070","post","type-post","status-publish","format-standard","hentry","category-laravel-tutorial"],"_links":{"self":[{"href":"https:\/\/www.devopssupport.in\/blog\/wp-json\/wp\/v2\/posts\/2070","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopssupport.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopssupport.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopssupport.in\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopssupport.in\/blog\/wp-json\/wp\/v2\/comments?post=2070"}],"version-history":[{"count":2,"href":"https:\/\/www.devopssupport.in\/blog\/wp-json\/wp\/v2\/posts\/2070\/revisions"}],"predecessor-version":[{"id":2075,"href":"https:\/\/www.devopssupport.in\/blog\/wp-json\/wp\/v2\/posts\/2070\/revisions\/2075"}],"wp:attachment":[{"href":"https:\/\/www.devopssupport.in\/blog\/wp-json\/wp\/v2\/media?parent=2070"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopssupport.in\/blog\/wp-json\/wp\/v2\/categories?post=2070"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopssupport.in\/blog\/wp-json\/wp\/v2\/tags?post=2070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}