tp5.1关联预加载 -- 并再次解释模型的关联

预加载:

主要还是对一对多的模型操作进行分析

 

一对多,需要关联的表设置关联字段即可

例:一张user表,一张role表,role为关联的表

那么给role这个表设置字段user_id

 

一对多的应用场景主要是:

当有一篇文章有多个评论时

例:article表和comment

这时就需要进行模型的关联操作一对多,我们给comment设置一个字段为article_id

使用$this->hasMany('comment','article_id','id');即可

 

一对一的应用场景:

当有一个用户有自己唯一的资料时

例:user表和info表

这时我们就需要进行模型的关联操作一对一,我们给user表设置一个字段为info_id

使用$this->hasOne('info','id','info_id');即可

 

而预加载就是将关联查询的数据进行了自动分层,不需要我们在处理数据结构

 

数据库结构

1.模型

<?php
namespace app\model;

use think\Model;


class User extends Model
{
    protected $table = 'tp_user';

    public function user()
    {
        /*
         * 参数一:关联的模型名
         * 参数二:关联的模型的id
         * 参数三:当前模型的关联字段
         * */
        // return $this->hasOne('Role','id','role_id');
        return $this->hasMany('Role','user_id','Id');
    }

}

 2.控制器代码

$data = User::with('user')->select();
        dump($data);

3.结果

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咔咔-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值