• 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');
        }
    }
  • 相关阅读:
    Android 解决toolbar标题不显示问题
    Android Material Design之CollapsingToolbarLayout使用
    Android ToolBar标题文字居中的方法
    Android ToolBar自定义图标,关联DrawerLayout
    Android studio 隐藏toolbar上的app title
    Android CollapsingToolbarLayout Toolbar的title覆盖问题
    K-Means算法的收敛性和如何快速收敛超大的KMeans?
    CentOS6.5下编译R源码并安装Spark R
    说说Windows7 64bits下安装TensorFlow GPU版本会遇到的一些坑
    Windows7 64bits下安装TensorFlow GPU版本(图文详解)
  • 原文地址:https://www.cnblogs.com/clubs/p/8907219.html
Copyright © 2020-2023  润新知