zoukankan      html  css  js  c++  java
  • TP6.0 一对一模型关联 belongsTo 相对关联(反向关联)

    1. 创建数据表


    一对一反向关联使用率很高

    附表关联主表称为反向关联,又称为相对关联(tp官方手册这样叫)

    -- 分类表
    CREATE TABLE `category` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
      `name` varchar(255) DEFAULT NULL COMMENT '分类名称',
      `sort` int(11) DEFAULT NULL COMMENT '分类排序',
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
    INSERT INTO `category` VALUES (1, 'Java', 0);
    INSERT INTO `category` VALUES (2, 'Vue', 0);
    
    -- 文章表
    CREATE TABLE `article` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `category_id` int(11) DEFAULT '0',
      `title` varchar(255) DEFAULT NULL,
      `content` text,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
    INSERT INTO `article` VALUES (1, 0, 'PHP数据类型', '文章内容01');
    INSERT INTO `article` VALUES (2, 1, 'Java常量池', '文章内容02');
    INSERT INTO `article` VALUES (3, 2, 'Vue Cli 4 引入图片地址', '文章内容03');
    

    2. 文章模型定义一对一相对关联方法


    public function category()
    {
    	/**
    	 * belongsTo('关联模型', '当前模型外键', '关联模型主键');
    	 *
    	 * 第一个参数
    	 * appmodelCategory 关联的模型类名(分类表模型)
    	 *
    	 * 第二个参数
    	 * category_id 外键字段,默认的外键名规则是关联模型名+_id(文章表外键字段)
    	 *
    	 * 第三个参数
    	 * id 关联模型主键,默认是关联模型的 $pk 值(分类表主键字段)
    	 */
        return $this->belongsTo(Category::class, 'category_id', 'id');
    }
    

    3. belongsTo() 也支持额外的方法 同 hasOne()


    public function category()
    {
    	/**
    	 * belongsTo('关联模型', '当前模型外键', '关联主键');
    	 */
        return $this->belongsTo(Category::class, 'category_id', 'id')->bind([
        	'name', 'sort'
        ]);
    }
    

  • 相关阅读:
    uniapp的v-for的key不同平台的兼容解决
    想好要做什么,然后就放手去做吧!
    中国姓氏大全(常见508个,罕见740个)
    swiper鼠标移入停止滚动 移出开始滚动
    swiper文字垂直滚动(公告栏)
    简体生僻汉字大全21418个-GBK编码中的汉字
    uniapp终极查bug大法-无私分享
    uniapp数据更新了但是页面没有渲染-解决方案
    uniapp引入font-awsome字体图标-疑难解决
    优化问题及KKT条件
  • 原文地址:https://www.cnblogs.com/cfmy/p/13515660.html
Copyright © 2011-2022 走看看