Velvet Star Monitor

Standout celebrity highlights with iconic style.

updates

Attempt to read property "id" on integer

Writer Andrew Henderson

I am new in laravel and working on E-Commerce Project. Plz Help me!

I am trying to get data from the database but I can't.

My function

public function add_product_attributes($id)
{ $attributes = Product::where(['id' => $id])->with('attributes')->first(); $attributes_data = $attributes->toArray(); dd($attributes_data); //here i can see my required data $product_attributes = product::find($id); // dd($product_attributess); return view('admin.add_product_attributes', compact('product_attributes', 'attributes_data'));
}

// I want to get multiple records like SKU, Color, Size, etc

//Here this is a record that I can see using dd($attributes_data)

array:14 [▼ // app\Http\Controllers\AdminController.php:228 "id" => 2 "title" => "shirt" "category_id" => 1 "price" => "12$" "dis_price" => "1000$" "quantity" => "1" "product_code" => "002" "product_color" => "blue" "short_description" => "test" "long_description" => "test" "image" => "1670482697.raza.jpeg" "created_at" => "2022-12-08T06:58:17.000000Z" "updated_at" => "2022-12-08T06:58:17.000000Z" "attributes" => array:4 [▼ 0 => array:8 [▶] 1 => array:8 [▶] 2 => array:8 [▶] 3 => array:8 [▶] ]
]

At this point, I think everything is fine

//I can see my required data but I can't show that in the view file in foreach loop. It gives me an error Attempt to read property "id" and all data like category_id, SKU etc on an integer Here I am pasting the view file details
 @foreach ($attributes_data as $data) <tr> <th scope="row">{{$data->id}}</th> <td>{{$data->category_id}}</td> <td>{{$data->product_id}}</td> <td>{{$data->sku}}</td> <td>{{$data->size}}</td> <td>{{$data->price}}</td> <td>{{$data->stock}}</td> </tr> @endforeach`
I want to resolve this error and show all attributes of my single product.
plz help me I will be very thankful to you
2

2 Answers

If I understood the purpose of your codes well You want to access a product + its attributes in the view

I tried to make your code a little cleaner and more understandable
(I hope I understand your question correctly so that my answer is useful for us)

public function add_product_attributes($id)
{ $product = Product::where('id' , $id)->with('attributes')->first(); $attributes = $product->attributes; return view('admin.add_product_attributes', compact('product', 'attributes' ));
}

view

@foreach ($attributes as $attribute) <tr> <th scope="row">{{attribute->id}}</th> // ... </tr>
@endforeach
2

You're transforming your attributes to an array. But you're fetching only one record so you don't need to wrap it in foreach loop here. You can simply do this.

 <tr> <th scope="row">{{$attributes_data['id']}}</th> <td>{{$attributes_data['category_id']}}</td> <td>{{$attributes_data['product_id']}}</td> <td>....</td> </tr>
2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.