TP5一对一、一对多关联模型的使用

控制器:

namespace app\admin\controller;
use app\admin\model\Article ;
use think\Controller;
use think\Db;

/**
 * 关于TP5一对一/一对多关联的关联查询
 * Class Member
 * @package app\admin\controller
 */
class Guser extends Controller
{
    public function index()
    {
        //查询所有每篇文章下的评论内容且分页
        $article_list = Article::with('comment')->order('add_time asc')->field('id,title,add_time,introduction,clicknum')->paginate(20)->toArray();
        dump($article_list);exit;
    }
}

模型Article.php

/**
 * 主表(tp_article)的模型
 * Class Article
 * @package app\admin\model
 */
class Article extends Model
{
    /**
     * 一对多
     * 建立和tp_comment表的关联
     * hasMany方法的参数包括:hasMany('关联模型名','外键名','主键名',['模型别名定义']);
     * gg_id 是关联表的关联键名
     * clicknum 是主表的被关联的键名
     */
    public function comment()
    {
        return $this->hasMany('comment','gg_id','clicknum');
    }

    /**
     * 一对一
     * 建立和tp_comment表的关联
     * hasMany方法的参数包括:hasMany('关联模型名','外键名','主键名',['模型别名定义']);
     * gg_id 是关联表的关联键名
     * clicknum 是主表的被关联的键名
     */
    public function comment()
    {
        return $this->hasOne('comment','gg_id','clicknum');
    }
}

模型Comment.php

/**
 * tp_comment 表模型
 * @package app\admin\model
 */
class Comment extends Model
{
    /**
     * 建立和tp_article表(主表)的关联
     * belongsTo的参数包括::belongsTo('关联模型名','外键名','关联表主键名',['模型别名定义'],'join类型');
     */
    public function article()
    {
        return $this->belongsTo('article');
    }
}

 

posted @ 2018-12-22 18:28  爱跑步的乌龟  阅读(3873)  评论(0编辑  收藏  举报