在laravel中,一对多模型要对其中符合某些要求的记录进行统计。比如:一个商品对应有多条购买时记录,要在商品列表展示给不同用户他购买此商品的次数。可以用模型withCount这个方法来完成。
基础用法

  1. $goodsList = App\Good::withCount('buyLog')->get();
  2. foreach ($goodsList as $goods) {
  3. echo $goods->buy_log_count; //注意这个buyLog会变成蛇形的
  4. }

高级用法:

  1. $goodsList = App\Good::withCount([
  2. 'times',
  3. 'times as times_count' => function ($query) use($userId) {
  4. $query->where('userId', $userId);
  5. }
  6. ])->get();
  7. echo $posts[0]->times;
  8. echo $posts[0]->times_count;

还是看他们翻译的官方文档吧.

参考: https://laravel-china.org/docs/laravel/5.7/eloquent-relationships/2295#one-to-many

分类: web

标签:   laravel