Laravel:hasMany()只使用take()处理第一个结果

时间:2014-09-23 20:06:55

标签: php laravel orm eloquent limit-per-group

我有以下型号。

class User extends Eloquent {
  public function comments() {
    return $this->hasMany('Comment');
  }
}

class Comment extends Eloquent {
  public function user() {
      return $this->belongsTo('User');
  }
}

为了这个例子,用户可以有1,000条评论。我试图将它们限制在前10位。我已尝试通过

User模型中进行此操作
class User extends Eloquent {
  public function comments() {
    return $this->hasMany('Comment')->take(10);
  }
}

并通过UserController通过闭包

$users = User::where('post_id', $post_id)->with([
  'comments' => function($q) {
     $q->take(10);
   }
]);

这两种方法似乎只适用于结果的第一条记录。有没有更好的方法来解决这个问题?

0 个答案:

没有答案