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

简介: 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');即可



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



数据库结构


image.png


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.控制器代码

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

3.结果

image.png

相关文章
|
6月前
|
JSON API 开发者
如何使用分类ID参数过滤搜索词推荐数据?
一、背景介绍 阿里巴巴中国站的搜索词推荐数据对于开发者来说具有重要的参考价值。通过使用获得搜索词推荐 API,开发者可以获取到用户在平台上的搜索行为数据,了解用户的需求和行为,优化产品和服务。在获取搜索词推荐数据的过程中,有时候需要对数据进行更精细的过滤和分析。其中,分类ID参数是一个非常重要的过滤条件,可以帮助开发者更好地筛选数据。本文将详细介绍如何使用分类ID参数过滤搜索词推荐数据,帮助读者更好地理解和使用该 API。
|
数据采集 移动开发 数据可视化
空间转录组|Load10X_Spatial函数修改适配多形式数据 + 空转标准流程
空间转录组|Load10X_Spatial函数修改适配多形式数据 + 空转标准流程
442 0
|
测试技术
软件测试面试题:lr自动关联和手动关联
软件测试面试题:lr自动关联和手动关联
108 0
【TP5】关联预加载只查询指定字段(类的属性不存在)
【TP5】关联预加载只查询指定字段(类的属性不存在)
468 0
【TP5】关联预加载只查询指定字段(类的属性不存在)
【TP5】一个表里边有多个关联怎么使用预加载
【TP5】一个表里边有多个关联怎么使用预加载
79 0
【TP5】一个表里边有多个关联怎么使用预加载
【TP5.1】关联与载入 多表连查
【TP5.1】关联与载入 多表连查
209 0
【TP5.1】关联与载入 多表连查
|
数据库
【TP5】关联预载入根据条件查询
【TP5】关联预载入根据条件查询
252 0
【TP5】关联预载入根据条件查询
【TP5】在同一模型里边使用hasMany进行数据的组装
【TP5】在同一模型里边使用hasMany进行数据的组装
376 0
【TP5】在同一模型里边使用hasMany进行数据的组装
【TP5.1】用户模块渲染
【TP5.1】用户模块渲染
72 0
【TP5.1】用户模块渲染
【TP5.1】创建通用的基类自定义命令
【TP5.1】创建通用的基类自定义命令
88 0
【TP5.1】创建通用的基类自定义命令