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

文章表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;

d765f15f43d6d71c9c3cb5c8e3507636.png

评论表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;

7ba79539eb984f68ed908e5dec8e5e4c.png

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

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值