ThinkPHP5.1模型关联查询


通过模型关联操作把数据表的关联关系对象化,解决了大部分常用的关联场景,封装的关联操作比起常规的数据库联表操作更加智能和高效,并且直观。

tp模型关联的具体用法:

比如:关联查询用户数据

表sign中有数据如下,现在需要将sign中的这条数据查询出来时,同时将其user_id对应的用户信息查询出来

image.png

1、在sign模型中定义关联方法

class SignModel extends Model
{
    //模型关联方法
    protected $relationFilter = ['user'];
    /**
     * 关联 user表
     * @return \think\model\relation\BelongsTo
     */
    public function user()
    {
        return $this->belongsTo('UserModel', 'user_id')->field('id,user_nickname,avatar');
        //field是指定需要查询的字段
    }
}

2、查询数据并关联

$signmodel=new SignModel();
$data= $signmodel->select();
if (!$data->isEmpty()) {
    $data->load('user');
}

查询结果:

{
    "code": 1,
    "msg": null,
    "data": [
        [
            {
                "id": 1,
                "act_id": 3,
                "user_id": 1,
                "user": {
                    "id": 1,
                    "user_nickname": "我是管理员",
                    "avatar": "http://sport.spadek.cn/upload/default/20191205/b877b644c028d313d2c5f4b82d9debbc.png"
                }
            }
        ]
    ]
}

关于第2步中load()的具体解释,可以看看下一篇文章

ThinkPHP5.1关联预载入之延迟预载入

点赞(0

上一篇: ThinkPHP5.1关联预载入之延迟预载入

下一篇: uni-app页面传值

本文标签: #ThinkPHP #关联查询

版权声明: 若无特殊注明,本文皆为原创,转载请注明出处。

发布时间: 2020-02-03 00:18

点击总数: 1350

本文作者:97


请登陆后在进行评论


    点击登陆


    文章
    15
    评论
    14
    用户
    43