zoukankan      html  css  js  c++  java
  • 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 appadmincontroller;
    use appadminmodelArticle ;
    use thinkController;
    use thinkDb;
    
    /**
     * 关于TP5一对一/一对多关联的关联查询
     * Class Member
     * @package appadmincontroller
     */
    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 appadminmodel;
    use thinkModel;
    
    /**
     * 主表(tp_article)的模型
     * Class Article
     * @package appadminmodel
     */
    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 appadminmodel;
    use thinkModel;
    
    /**
     * tp_comment 表模型
     * @package appadminmodel
     */
    class Comment extends Model
    {
        /**
         * 建立和tp_article表(主表)的关联
         * belongsTo的参数包括::belongsTo('关联模型名','外键名','关联表主键名',['模型别名定义'],'join类型');
         */
        public function article()
        {
            return $this->belongsTo('article');
        }
    }
  • 相关阅读:
    spring boot 中使用redis session
    关于 JVM 内存的 N 个问题(转)
    在JAVA中记录日志的十个小建议
    spring boot jpa 多数据源配置
    python高性能web框架——Japronto
    毕业 3 年,为何技术能力相差越来越大?——转自阿里技术人生
    如何成为技术大牛——阿里CodeLife
    布式之数据库和缓存双写一致性方案解析(转)
    海量数据存储--分库分表策略详解 (转)
    Linux内核模块简单示例
  • 原文地址:https://www.cnblogs.com/clubs/p/8907219.html
Copyright © 2011-2022 走看看