远程一对多

远程一对多关联用于定义有跨表的一对多关系,例如:

  • 每个城市有多个用户
  • 每个用户有多个话题
  • 城市和话题之间并无关联

关联定义

就可以直接通过远程一对多关联获取每个城市的多个话题,City模型定义如下:

						
							
								<?php
								namespace
								app\index\model;
								use
								think\Model;
								
									class
									City
									extends
									Model
								{
								public
								
									function
									topics
									()
								{
								return
								$this->hasManyThrough('Topic','User');     } }
							
						
					

远程一对多关联,需要同时存在TopicUser模型。

hasManyThrough方法的参数如下:

hasManyThrough('关联模型名','中间模型名','外键名','中间模型关联键名','当前模型主键名',['模型别名定义']);

关联查询

我们可以通过下面的方式获取关联数据

						
							$city
							=
							City:
							:get(1);
							//
							获取同城的所有话题 dump($city->topics);
							//
							也可以进行条件搜索 dump($city->topics()->where('topic.status',1)->select());
					
文档最后更新时间:2018-06-09 15:34:42

文档
目录

深色
模式

切换
宽度