Thinkphp HasOne 键值解析以及数据库查询得到数据,但是返回为空解析

Thinkphp HasOne 键值解析以及数据库查询得到数据,但是返回为空解析

记录一下自己的小错误~

一:
Thinkphp的Hasone是个偷懒神器,但是很多人用户的是不知道对应的键值。
首先官方链接(点我跳转)~

Eg:

use app\common\model\GoodsInfo;
class Goods {
	public function goodsList($_where){
		$_ret = $this->with(["goodsinfo"])->where($_where)->select();
		if(!$_ret->isEmpty()){
			return $_ret->toArray();
		}
		return [];
	}
	public function goodsinfo(){
		return $this->hasOne(GoodsInfo:class,"foreignKey","localKey")->field(["id","name","img","sku"]);
	}
}

注解来了:

1.格式就是上面的记得引入需要外链的class

2.关联的Key(外链键值)怎么设置

foreignKey:翻译过来就是 “外边的Key”,对应的就是关联的GoodsInfo这张表要对应的字段(gid)
localKeyKey: "本地的Key",对应的就是Goods这张表的字段(id)
所以补全上面的代码就是
public function goodsinfo(){
	return $this->hasOne(GoodsInfo:class,"gid","id")->field(["id","name","img","sku"]);
}

3.强调键值说明!!!!

这里要强调一下,如果启用了后面的field的这个方法,就是只显示某些字段。
一定要记得。把前面的“id”带上不然你就会发现,明明我的数据库里面是有对应的数据但是查询出来,goodsinfo这个返回的是null,因为数据库查询出来了以后要去找啊,找到这条数据是谁的!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值