Step 01: In OrderController, adding edit() method
public function edit( Order $order ) { $meta_title = 'Edit Order ' . $order->name; return view( 'orders.edit', compact( 'meta_title', 'order' ) ); }
Step 02: Adding edit.blade.php under resources/view/orders folder inside section blade directive extending app layout
@extends('layouts.app') @section('content') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <h2 class="float-start">Edit Order</h2> <div class="float-end"> <a class="btn btn-sm btn-primary" href="{{ route('orders.index') }}"> Back to orders</a> </div> <div class="clearfix"></div> <div class="card "> <div class="card-body"> <form method="post" action="{{ route('orders.update', $order->id) }}" id="orderCrfrm" method="post"> @csrf @method('PUT') <div class="form-group mb-2"> <label for="title">Company Name <span class="text-danger">*</span></label> <br> <input name="company_name" class="form-control" placeholder="company name" title="company name" type="text" id="company_name" value="{{ $order->company_name }}" /> @if ($errors->has('company_name')) <span class="text-danger">{{ $errors->first('company_name') }}</span> @endif </div> <div class="form-group mb-2"> <label for="title">Phone Number <span class="text-danger">*</span></label> <br> <input name="phone_number" class="form-control" placeholder="phone number" title="phone number" type="text" id="phone_number" value="{{ $order->phone_number }}" /> @if ($errors->has('phone_number')) <span class="text-danger">{{ $errors->first('phone_number') }}</span> @endif </div> <div class="form-group mb-2"> <label for="title">Email <span class="text-danger">*</span></label> <br> <input name="email" class="form-control" placeholder="email" title="email" type="text" id="email" value="{{ $order->email }}" /> @if ($errors->has('email')) <span class="text-danger">{{ $errors->first('email') }}</span> @endif </div> <div class="form-group mb-2"> <label for="title">Job / PO Number <span class="text-danger">*</span></label> <br> <input name="job_number" class="form-control" placeholder="job number" title="job number" type="text" id="job_number" value="{{ $order->job_number }}" /> @if ($errors->has('job_number')) <span class="text-danger">{{ $errors->first('job_number') }}</span> @endif </div> <div class="form-group mb-2"> <label for="title">Status?</label> <br> <div class="ml-4"> <input type="checkbox" id="status" name="status" {{ ($order->status == 1) ? 'checked' : '' }} class="form-check-input mb-2"> </div> </div> <input class="btn btn-sm btn-primary" class="form-control" type="submit" name="action" value="Edit"> </form> </div> </div> </div> </div> </div> @endsection
Step 03: Back in OrderController adding update() method like below and keeping to edit page after editing with flash message at the top
public function update( Order $order, Request $request ) { $request->validate( ['company_name' => 'required', 'phone_number' => 'required', 'email' => 'required', 'job_number' => 'required'] ); $order->update([ 'company_name' => $request->company_name, 'phone_number' => $request->phone_number, 'job_number' => $request->job_number, 'email' => $request->email, 'status' => !empty($request->status) ? 1 : 0, ]); return redirect()->route( 'orders.edit', $order->id )->with( 'success', 'Order updated successfully' ); }