文章表SQL
CREATE TABLE `tp_article` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`title` varchar(50) DEFAULT NULL COMMENT '标题',
`add_time` datetime DEFAULT NULL COMMENT '添加时间',
`introduction` varchar(50) DEFAULT NULL COMMENT '简介',
`clicknum` int(11) DEFAULT NULL COMMENT '点击数',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
评论表SQL
CREATE TABLE `tp_comment` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`gg_id` int(11) DEFAULT NULL COMMENT '关联id',
`comment` varchar(50) DEFAULT NULL COMMENT '评论',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
Gl控制器内代码
namespace app\admin\controller;useapp\admin\model\Article ;usethink\Controller;usethink\Db;/**
* 关于TP5一对一/一对多关联的关联查询
* Class Member
* @package app\admin\controller*/
class Gl extendsController
{public functionindex()
{//查询所有每篇文章下的评论内容且分页
$article_list = Article::with('comment')->order('add_time asc')->field('id,title,add_time,introduction,clicknum')->paginate(20)->toArray();
dump($article_list);exit;
}
}
application/admin/model/Article.php(文章模型)
namespace app\admin\model;usethink\Model;/**
* 主表(tp_article)的模型
* Class Article
* @package app\admin\model*/
class Article extendsModel
{/**
* 一对多
* 建立和tp_comment表的关联
* hasMany方法的参数包括:hasMany('关联模型名','外键名','主键名',['模型别名定义']);
* gg_id 是关联表的关联键名
* clicknum 是主表的被关联的键名*/
public functioncomment()
{return $this->hasMany('comment','gg_id','clicknum');
}/**
* 一对一
* 建立和tp_comment表的关联
* hasMany方法的参数包括:hasMany('关联模型名','外键名','主键名',['模型别名定义']);
* gg_id 是关联表的关联键名
* clicknum 是主表的被关联的键名*/
//public function comment()
// {
// return $this->hasOne('comment','gg_id','clicknum');
// }
}
application/admin/model/Comment.php(评论模型)
namespace app\admin\model;usethink\Model;/**
* tp_comment 表模型
* @package app\admin\model*/
class Comment extendsModel
{/**
* 建立和tp_article表(主表)的关联
* belongsTo的参数包括::belongsTo('关联模型名','外键名','关联表主键名',['模型别名定义'],'join类型');*/
public functionarticle()
{return $this->belongsTo('article');
}
}