Reputation: 39
Hi I am working on the checkout page in laravel and sent some product data from the cart to checkout and trying to print all the details from an json object but i keep getting the error as Trying to get property 'id' of non-object
The controller function is
public function bill(Request $request){
$input = $request->all();
return view('demo')->with('product' , $request->product)
->with('subtotal' , round($request->subtotal));
}
the cart form is
<form method="post" action="{{ route('pay')}}">
{{ csrf_field() }}
@foreach($cart as $product)
<input type="hidden" name="product[]" value="{{ $product }}">
@endforeach
<input type="hidden" name="subtotal" value="{{$subtotal}}">
<button type="submit" class="gray_btn">Checkout</button>
</form>
the blade page is
@foreach($product as $input)
{{ $input }}
{{ $input->id }}
@endforeach
when i only print the input i am getting the result as
{"id":"10","name":"S007-4ft","price":40,"quantity":"102","attributes":{"image":"glassfilms\/December2019\/MyelERNBbAWhGRbKWiCK.jpg","crm":"PRO209"},"conditions":[]} {"id":"7","name":"Frosted 007-4ft","price":40,"quantity":"103","attributes":{"image":"glassfilms\/December2019\/ZJgWUNaYrPnvsoRfuagv.jpg","crm":"PRO105"},"conditions":[]}
but when i try to print the id only using {{input->id }}
i am getting the error.
the route is
Route::post('pay', 'RazorpayController@bill')->name('pay');
Upvotes: 0
Views: 77
Reputation: 5316
You have to pass an array in order to have access by a key, i.e. call json_decode()
when returning it:
public function bill(Request $request) {
$input = $request->all();
return view('demo')
->with('product', json_decode($request->product, true)) // <-- here
->with('subtotal', round($request->subtotal));
}
Otherwise the returned value is a just simple string in JSON "shape". Error say it clear ehough: non-object.
Upvotes: 2
Reputation: 517
You are using json object
as php object
please decode your json object first than you can use it as php object:
$obj = json_decode($input);
$obj->id // Now you can use it like this
Upvotes: 0