ThinkPHP 5.0 模型关联详解

相信很多小伙伴在刚开始学习thinkphp5.0的时候看不太懂模型关联里边的参数什么意思,下面就详细介绍一下:

一对一关联:hasOne(‘关联模型名’,‘外键名’,‘主键名’,[‘模型别名定义’],‘join类型’);

可以看到一对一关联 hasOne里有很多参数,但最重要的就是前三个参数。

第一个参数 ‘关联模型名’ ,tp5手册是这样说的:‘一个用户都有一个个人资料’。
详细点说就是,你可以在用户模型里边使用hasOne关联个人资料表,那么第一个参数就是 个人资料表的模型名了。 看代码:

namespace app\index\model;

use think\Model;

class User extends Model {

    public function profile() {
        return $this->hasOne('Profile');
    }
}

第二个参数就是 ‘外键名’ 其实就是 你需要关联的 Profile 表的主键名。

而第三个参数主键名,就是你当前模型跟要关联的Profile表主键对应的 字段名。

	public function profile() {
		// 第二个参数 id 是 Profile 表的 id, 第三个参数 pid 是当前模型下需要跟Profile表的主键关联的字段
        return $this->hasOne('Profile','id','pid');
    }

使用的话就是先实例化这个模型 然后查询数据用-> 的方式去取想要的数据:

$user = User::get(1);
// 输出Profile关联模型的email属性
echo $user->profile->email;

一对多关联的 参数跟一对一的几乎是一样的,学会一对一关联其他关联也能做到基本的操作。

发布了16 篇原创文章 · 获赞 13 · 访问量 2460

猜你喜欢

转载自blog.csdn.net/weixin_42905245/article/details/102702435