文章表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控制器內代碼
<?php namespace app\admin\controller; use app\admin\model\Article ; use think\Controller; use think\Db; /** * 關於TP5一對一/一對多關聯的關聯查詢 * Class Member * @package app\admin\controller */ class Gl 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; } }
application/admin/model/Article.php(文章模型)
<?php namespace app\admin\model; use think\Model; /** * 主表(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'); // } }
application/admin/model/Comment.php(評論模型)
<?php namespace app\admin\model; use think\Model; /** * tp_comment 表模型 * @package app\admin\model */ class Comment extends Model { /** * 建立和tp_article表(主表)的關聯 * belongsTo的參數包括::belongsTo('關聯模型名','外鍵名','關聯表主鍵名',['模型別名定義'],'join類型'); */ public function article() { return $this->belongsTo('article'); } }