例如一篇文章可以有多个评论

  1. <?php
  2. namespace app\index\model;
  3. use think\Model;
  4. class Article extends Model
  5. {
  6. {
  7. return $this->hasMany('Comment','art_id');
  8. }

如果需要指定查询字段,可以使用下面的方式:

  1. $article = Article::get(1);
  2. // 获取文章的所有评论
  3. dump($article->comments);
  4. // 也可以进行条件搜索
  5. dump($article->comments()->where('status',1)->select());

可以根据关联条件来查询当前模型对象数据,例如:

V5.0.13+版本开始,hasWhere方法新增fields参数,用于指定返回的字段列表。例如:
  1. // 查询评论状态正常的文章
  2. $list = Article::hasWhere('comments', ['status'=>1], 'name,title')
  1. name app\index\model;
  2. use think\Model;
  3. class Comment extends Model
  4. {
  5. public function article()
  6. {
  7. return $this->belongsTo('article');
  8. }