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

相关文章
|
7月前
|
C++
57静态关联与动态关联
57静态关联与动态关联
66 0
|
存储 编译器 程序员
C++数据定义及相关操作
C++数据定义及相关操作
144 0
C++数据定义及相关操作
|
算法 数据挖掘 开发者
关联模式评估| 学习笔记
快速学习关联模式评估。
关联模式评估| 学习笔记
|
uml
[转载]泛化、实现、依赖和关联的区别
原文链接:http://www.cnblogs.com/linjiqin/archive/2013/11/09/3415440.html 传统应用程序设计中所说的依赖一般指“类之间的关系”,那先让我们复习一下类之间的关系:a、实现表示类对接口的实现。
1121 0
|
测试技术
软件测试面试题:lr自动关联和手动关联
软件测试面试题:lr自动关联和手动关联
126 0
【TP5.1】关联与载入 多表连查
【TP5.1】关联与载入 多表连查
258 0
【TP5.1】关联与载入 多表连查
【TP5】关联预加载只查询指定字段(类的属性不存在)
【TP5】关联预加载只查询指定字段(类的属性不存在)
502 0
【TP5】关联预加载只查询指定字段(类的属性不存在)
【TP5】一个表里边有多个关联怎么使用预加载
【TP5】一个表里边有多个关联怎么使用预加载
98 0
【TP5】一个表里边有多个关联怎么使用预加载
|
数据库
【TP5】关联预载入根据条件查询
【TP5】关联预载入根据条件查询
276 0
【TP5】关联预载入根据条件查询
|
JavaScript 前端开发
测理论--异步与回调的关联和区别
异步与回调的关联和区别
192 0

热门文章

最新文章