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');
        }
    }
  • 相关阅读:
    简单的MVC小应用
    jsp四大指令元素,三大脚本元素,八大动作元素
    servlet session管理的四种方式 --隐藏表单
    servlet session管理的四种方式--一 url重写
    创建servlet三种方式(韩顺平老师课程)
    python函数
    tcpprobe ——监听TCP信息的内核模块
    Popen的方法
    Python中执行系统命令常见的几种方法
    > /dev/null 2>&1 含义
  • 原文地址:https://www.cnblogs.com/clubs/p/8907219.html
Copyright © 2011-2022 走看看