Editing order data - crud of orders

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 &nbsp;<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 &nbsp;<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 &nbsp;<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 &nbsp;<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' );
}

Related Posts


Building mini ecommerce in Laravel

Listing rows of users - crud

Adding user data - crud of users

Editing user data - crud of users

Deleting user data - crud of users

Listing rows of products - crud

Listing rows of profiles - crud

Listing rows of orders - crud

Listing rows of order items - crud