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;
评论表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');
}
}
TP5一对一、一对多关联模型的使用的更多相关文章
- 一对多关联模型,BELONGS_TO
先分别创建三张表:test_user test_message test_user 表里有id.name字段 test_message 表里有id.content.uid字段 然后建立一个Mode ...
- laravel5.6 ORM 关联模型,一对一和一对多
Laravel5.6 关联模型的操作,主要是一对一,一对多,多对多等操作.下面示例主要解析前面两个操作用法比较常用.(操作和用法TP5类似)将关联查询使用语法hasOne.hasMany.belong ...
- 实例讲解TP5中关联模型
https://blog.csdn.net/github_37512301/article/details/75675054 一.关联模型在关系型数据库中,表之间有一对一.一对多.多对多的关系.在 T ...
- <记录>TP5 关联模型使用(嵌套关联、动态排序以及隐藏字段)
在数据库设计中,常常会有如下这种关联模型,分类表中一条分类对应多个商品表中的商品 如果要获得分类表中每条分类 以及 对应的商品的信息,则需要先查询分类表中的数据,然后根据结果遍历查询商品表,最后把数据 ...
- TP5 关联模型使用(嵌套关联、动态排序以及隐藏字段)
在数据库设计中,常常会有如下这种关联模型,分类表中一条分类对应多个商品表中的商品 如果要获得分类表中每条分类 以及 对应的商品的信息,则需要先查询分类表中的数据,然后根据结果遍历查询商品表,最后把数据 ...
- TP5.1框架中的模型关联
一对一关联 hasOne('关联模型','外键','主键'); 关联模型(必须):关联的模型名或者类名 外键:默认的外键规则是当前模型名(不含命名空间,下同)+_id ,例如user_id 主键:当前 ...
- (转)MyBatis框架的学习(五)——一对一关联映射和一对多关联映射
http://blog.csdn.net/yerenyuan_pku/article/details/71894172 在实际开发中我们不可能只是对单表进行操作,必然要操作多表,本文就来讲解多表操作中 ...
- ThinkPHP5——模型关联(一对多关联)
关联定义 一对多关联的情况也比较常见,使用hasMany方法定义,参数包括: hasMany('关联模型名','外键名','主键名',['模型别名定义']); 例如租客表和宿舍表,一个宿舍有多个租客, ...
- 后盾网lavarel视频项目---模型一对多关联简单实例
后盾网lavarel视频项目---模型一对多关联简单实例 一.总结 一句话总结: 在模型中定义一个方法来设置一对多关联:return $this->hasMany(Video::class); ...
随机推荐
- C# 连接EXCEL 和 ACCESS
97-2003版本 EXCEL Provider=Microsoft.Jet.OLEDB.4.0;Data Source=文件位置;Extended Properties=Excel 8.0;HDR= ...
- <容错性FaultTolerance><Hadoop><Spark>
Overview 讨论一些常见大数据框架的容错机制 Fault Tolerance in Hadoop MapReduce Heartbeat心跳机制:如果在一定时间内没有收到心跳,则reschedu ...
- iOS 获取当前正在显示的ViewController
//获取当前屏幕显示的viewcontroller - (UIViewController *)getCurrentVC { UIViewController *result = nil; UIWin ...
- RAD Studio August 2018 Roadmap
路线图: https://community.embarcadero.com/article/news/16638-rad-studio-august-2018-roadmap 路线图评论: http ...
- 2017MySQL中文索引解决办法 自然语言处理(N-gram parser)
问题:长期以来MYSQL搜索对于中文来说不太理想,InnoDB引擎对FULLTEXT索引的支持是MySQL5.6新引入的特性,但是用“初级”一词在“我是一名初级开发者”搜索时是无法出现结果的,原因在于 ...
- Python基础5--字符串
1 find().rfind().index().rindex().count() s = "this apple is red apple" s.find("apple ...
- Android Activity之间的传值示例
AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xm ...
- [转]JavaScript与元素间的抛物线轨迹运动
在张鑫旭的博客看到这个抛物线的小动画,觉得很感兴趣,转载一下方便研究~ 原文地址:http://www.zhangxinxu.com/wordpress/?p=3855 在页面上添加元素的位移动画,除 ...
- [转]使用keepalived搭建主备切换环境
使用keepalived搭建主备切换环境 时间 2016-09-15 08:00:00 cpper 原文 http://cpper.info/2016/09/15/keepalived-for-ma ...
- 【opencv基础】imwrite函数与图像存储质量
前言 std::vector<int> compression_params; compression_params.push_back(CV_IMWRITE_JPEG_QUALITY); ...