文章表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控制器内代码

  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\model\Article ;
  4. use think\Controller;
  5. use think\Db;
  6.  
  7. /**
  8. * 关于TP5一对一/一对多关联的关联查询
  9. * Class Member
  10. * @package app\admin\controller
  11. */
  12. class Gl extends Controller
  13. {
  14. public function index()
  15. {
  16. //查询所有每篇文章下的评论内容且分页
  17. $article_list = Article::with('comment')->order('add_time asc')->field('id,title,add_time,introduction,clicknum')->paginate(20)->toArray();
  18. dump($article_list);exit;
  19. }
  20. }

application/admin/model/Article.php(文章模型)

  1. <?php
  2. namespace app\admin\model;
  3. use think\Model;
  4.  
  5. /**
  6. * 主表(tp_article)的模型
  7. * Class Article
  8. * @package app\admin\model
  9. */
  10. class Article extends Model
  11. {
  12. /**
  13. * 一对多
  14. * 建立和tp_comment表的关联
  15. * hasMany方法的参数包括:hasMany('关联模型名','外键名','主键名',['模型别名定义']);
  16. * gg_id 是关联表的关联键名
  17. * clicknum 是主表的被关联的键名
  18. */
  19. public function comment()
  20. {
  21. return $this->hasMany('comment','gg_id','clicknum');
  22. }
  23.  
  24. /**
  25. * 一对一
  26. * 建立和tp_comment表的关联
  27. * hasMany方法的参数包括:hasMany('关联模型名','外键名','主键名',['模型别名定义']);
  28. * gg_id 是关联表的关联键名
  29. * clicknum 是主表的被关联的键名
  30. */
  31. // public function comment()
  32. // {
  33. // return $this->hasOne('comment','gg_id','clicknum');
  34. // }
  35. }

application/admin/model/Comment.php(评论模型)

  1. <?php
  2. namespace app\admin\model;
  3. use think\Model;
  4.  
  5. /**
  6. * tp_comment 表模型
  7. * @package app\admin\model
  8. */
  9. class Comment extends Model
  10. {
  11. /**
  12. * 建立和tp_article表(主表)的关联
  13. * belongsTo的参数包括::belongsTo('关联模型名','外键名','关联表主键名',['模型别名定义'],'join类型');
  14. */
  15. public function article()
  16. {
  17. return $this->belongsTo('article');
  18. }
  19. }

TP5一对一、一对多关联模型的使用的更多相关文章

  1. 一对多关联模型,BELONGS_TO

    先分别创建三张表:test_user   test_message test_user 表里有id.name字段 test_message 表里有id.content.uid字段 然后建立一个Mode ...

  2. laravel5.6 ORM 关联模型,一对一和一对多

    Laravel5.6 关联模型的操作,主要是一对一,一对多,多对多等操作.下面示例主要解析前面两个操作用法比较常用.(操作和用法TP5类似)将关联查询使用语法hasOne.hasMany.belong ...

  3. 实例讲解TP5中关联模型

    https://blog.csdn.net/github_37512301/article/details/75675054 一.关联模型在关系型数据库中,表之间有一对一.一对多.多对多的关系.在 T ...

  4. <记录>TP5 关联模型使用(嵌套关联、动态排序以及隐藏字段)

    在数据库设计中,常常会有如下这种关联模型,分类表中一条分类对应多个商品表中的商品 如果要获得分类表中每条分类 以及 对应的商品的信息,则需要先查询分类表中的数据,然后根据结果遍历查询商品表,最后把数据 ...

  5. TP5 关联模型使用(嵌套关联、动态排序以及隐藏字段)

    在数据库设计中,常常会有如下这种关联模型,分类表中一条分类对应多个商品表中的商品 如果要获得分类表中每条分类 以及 对应的商品的信息,则需要先查询分类表中的数据,然后根据结果遍历查询商品表,最后把数据 ...

  6. TP5.1框架中的模型关联

    一对一关联 hasOne('关联模型','外键','主键'); 关联模型(必须):关联的模型名或者类名 外键:默认的外键规则是当前模型名(不含命名空间,下同)+_id ,例如user_id 主键:当前 ...

  7. (转)MyBatis框架的学习(五)——一对一关联映射和一对多关联映射

    http://blog.csdn.net/yerenyuan_pku/article/details/71894172 在实际开发中我们不可能只是对单表进行操作,必然要操作多表,本文就来讲解多表操作中 ...

  8. ThinkPHP5——模型关联(一对多关联)

    关联定义 一对多关联的情况也比较常见,使用hasMany方法定义,参数包括: hasMany('关联模型名','外键名','主键名',['模型别名定义']); 例如租客表和宿舍表,一个宿舍有多个租客, ...

  9. 后盾网lavarel视频项目---模型一对多关联简单实例

    后盾网lavarel视频项目---模型一对多关联简单实例 一.总结 一句话总结: 在模型中定义一个方法来设置一对多关联:return $this->hasMany(Video::class); ...

随机推荐

  1. L317 电子烟

    Why it’s so hard to talk about e-cigarette risks A growing proportion of American adults consider va ...

  2. Flask源码阅读-第二篇(flask\__init__.py)

    源码: # -*- coding: utf-8 -*-""" flask ~~~~~ A microframework based on Werkzeug. It's e ...

  3. golang fmt占位符

    golang fmt格式"占位符" golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. 定义示例类型和变量 type Human stru ...

  4. java学习笔记5(方法)

    方法: 1.如何创建方法 修饰符   返回值类型  方法名(参数){被封装的代码段} 2.方法的定义和使用的注意事项: a:方法不能定义在另一个方法里面: b:方法 名字和方法的参数列表,定义和调用时 ...

  5. 关于dc.add(Restrictions.like("XXX", "%"+XXX+"%"))查询不到结果,但数据库中存在

    找了好久,最后发现是连接池的jdbc.jdbcUrl=jdbc:mysql:///XXX没有写编码格式 把jdbc.jdbcUrl改为jdbc:mysql:///XXX?characterEncodi ...

  6. binarysearchtree

    public class binarytree<Value> { private Node root = null; private class Node{ private Value v ...

  7. Python 属性

    class Person: def __init__(self, name, gender, birth): self.name = name self.gender = gender self.bi ...

  8. jQuery中extend()实现原理

    jQuery.extend使用的几种方式 1.jQuery.extend(源对象) jQuery源代码: if(length == i){ target = this; --i; } 示例1: var ...

  9. [转] 理解 LSTM 网络

    [译] 理解 LSTM 网络 http://www.jianshu.com/p/9dc9f41f0b29 Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他 ...

  10. 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 ...