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'); } }