Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.8k views
in Technique[技术] by (71.8m points)

php - How to get category a product belongs to - Laravel 6

I am fetching products and in the response, i want the category it belongs to to appear in the response. When i log the response, it looks like the below

Response

 [{"items_receive":"280","category":null},`{"items_receive":"100","category":null}]`  

Product.php

public function category()
{
    return $this->belongsTo(Category::class);
}

 public function getSummary()
    {
        return Product::with('category')->selectRaw('SUM(items_receive) as 
         items_total)
                ->where('user_id',Auth::user()->id)
                ->groupBy('category_id')
                ->get();
    }

Category.php

 public function products()
    {
        return $this->hasMany(Product::class);
    }

Controller.php

 public function index(Product $product)
 {
       $product->getSummary(); 
 }
question from:https://stackoverflow.com/questions/66050665/how-to-get-category-a-product-belongs-to-laravel-6

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Since relationships are lazy loaded for performance reasons, you have to explicitely ask for them, aka eager loading:

Product::with('category')->all();

Related Laravel documentation page


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...