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); ...
随机推荐
- L317 电子烟
Why it’s so hard to talk about e-cigarette risks A growing proportion of American adults consider va ...
- Flask源码阅读-第二篇(flask\__init__.py)
源码: # -*- coding: utf-8 -*-""" flask ~~~~~ A microframework based on Werkzeug. It's e ...
- golang fmt占位符
golang fmt格式"占位符" golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. 定义示例类型和变量 type Human stru ...
- java学习笔记5(方法)
方法: 1.如何创建方法 修饰符 返回值类型 方法名(参数){被封装的代码段} 2.方法的定义和使用的注意事项: a:方法不能定义在另一个方法里面: b:方法 名字和方法的参数列表,定义和调用时 ...
- 关于dc.add(Restrictions.like("XXX", "%"+XXX+"%"))查询不到结果,但数据库中存在
找了好久,最后发现是连接池的jdbc.jdbcUrl=jdbc:mysql:///XXX没有写编码格式 把jdbc.jdbcUrl改为jdbc:mysql:///XXX?characterEncodi ...
- binarysearchtree
public class binarytree<Value> { private Node root = null; private class Node{ private Value v ...
- Python 属性
class Person: def __init__(self, name, gender, birth): self.name = name self.gender = gender self.bi ...
- jQuery中extend()实现原理
jQuery.extend使用的几种方式 1.jQuery.extend(源对象) jQuery源代码: if(length == i){ target = this; --i; } 示例1: var ...
- [转] 理解 LSTM 网络
[译] 理解 LSTM 网络 http://www.jianshu.com/p/9dc9f41f0b29 Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他 ...
- help2man: can't get `--help' info from automake-1.15 Try `--no-discard-stderr' if option outputs to stderr Makefile:3687: recipe for target 'doc/automake-1.15.1' failed
/********************************************************************** * help2man: can't get `--hel ...