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('关联模型', '当前模型外键', '关联模型主键');
	 *
	 * 第一个参数
	 * app\model\Category 关联的模型类名(分类表模型)
	 *
	 * 第二个参数
	 * 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'
    ]);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值