laravel with嵌套的渴求式加载
今天在通过需求表A查询场地类型表B,然后通过表B的场地类型id去查询表C场地类型名的时候遇到了一个小的问题。
需求表A的字段:id、user_id 、name等等;
中间表B的字段:id、appeal_id、field_type_id;
场地类型表C的字段:id、display_name等等;
Appeal模型中:
public function appeal_field_type() {
return $this->hasMany('App\Models\AppealFieldType');
}
public function field_type() {
return $this->belongsTo('App\Models\FieldType')->select('id','display_name');
} Appeal控制器中;
$result = Appeal::select('id','name')
->where('id',$id)
->with('appeal_field_type.field_type')
->first();
以上都是看了laravel学院的嵌套的渴求式加载,然后按照他上面说的方法,模仿着写了一下,结果这个方法一直报错,报“field_type”方法不存在,一开始琢磨不透,看了一遍右边appeal模型,检查过单词有没有写错,有没有引入模型,等等,都检查过了,我就觉得不对啊,我就是严格按照学院上写的嵌套的渴求式加载,但是就是不对。后来,我想,既然appeal_field_type这个方法是通过关联模型访问的,那么是不是他还是要通过AppealFieldType这个模型,去访问field_type这个方法,果然,我把fiel_type方法写到AppealFielType模型中,再去访问的时候,成功~
最终成功的结果:
Appeal模型中:
public function appeal_field_type() {
return $this->hasMany('App\Models\AppealFieldType');
} AppealFieldType模型中:
public function field_type() {
return $this->belongsTo('App\Models\FieldType')->select('id','display_name');
}
Appeal控制器中:
$result = Appeal::select('id','name')
->where('id',$id)
->with('appeal_field_type.field_type')
->first(); 主要原因是学院上这一块讲的不是特别清楚,不知道后面的那个方法应该写在哪个控制器中,所以出现了这么一个困扰萌新的问题~
laravel with嵌套的渴求式加载的更多相关文章
- laravel 嵌套的渴求式加载
今天在通过需求表A查询场地类型表B,然后通过表B的场地类型id去查询表C场地类型名的时候遇到了一个小的问题. 需求表A的字段:id.user_id .name等等: 中间表B的字段:id.appeal ...
- Laravel渴求式加载(比较容易理解理解load与with关系)
渴求式加载 当以属性方式访问 Eloquent关联关系的时候,关联关系数据是「懒惰式加载」的,这意味着关联关系数据直到第一次访问的时候才被加载.不过,Eloquent 还可以在查询父级模型的同时「渴求 ...
- Laravel 5.2数据库--多个关联关系,带条件约束的渴求式加载的问题
### 今天在连表获取数据的时候,老是获取不到想要的,确实有点无力适从的感觉. 归根到底,还是对laravel不够熟悉,至少是数据库操作那块. ### 问题是这样的: 我想要通过连表中间表,拿中间表的 ...
- laravel with 渴求式加载指定字段
在使用 Laravel 的关联查询中,我们经常使用 with 方法来避免 N+1 查询,但是 with 会将目标关联的所有字段全部查询出来,对于有强迫症的我们来说,当然是不允许的. 这时候我们可以使用 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (28) ------ 第五章 加载实体和导航属性之测试实体是否加载与显式加载关联实体
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-11 测试实体引用或实体集合是否加载 问题 你想测试关联实体或实体集合是否已经 ...
- 【EF学习笔记08】----------加载关联表的数据 显式加载
显式加载 讲解之前,先来看一下我们的数据库结构:班级表 学生表 加载从表集合类型 //显示加载 Console.WriteLine("=========查询集合===========&quo ...
- dll显式加载与隐式加载
使用动态DLL有两种方法,一种是隐式链接,一种是显式链接,如果用loadlibrary就是显示链接,用lib就属于隐式链接. 两种方法对于你的程序调用动态库时没有任何区别,只是你在编程时,步骤是不一样 ...
- 用video标签流式加载
video标签 浏览器的video标签通常是接收一个src属性,然后浏览器就会根据这个src属性来自动加载视频.这个过程是浏览器来加载video的. 这种方式有什么问题吗? mp4文件不能流式加载 w ...
- 带你剖析WebGis的世界奥秘----瓦片式加载地图(转)
带你剖析WebGis的世界奥秘----瓦片式加载地图 转:https://zxhtom.oschina.io/zxh/20160805.html 编程 java 2016/08/05 0留言, ...
随机推荐
- Python(2):创建函数模块
说明: 在使用python的时候我们除了使用内置的函数之外,可能还需要使用一些别人写的函数.或者我们写的代码也希望可以给其他人使用.要实现这样的功能,我们就需要按照下面的步骤来定义自己的模块: Ste ...
- react-native-image-picker在IOS上总是返回”Can’t find variable:response”的错误?
环境: react-native: 0.41.2 react-native-image-picker: 0.26.2 xcode 8.2.1 iphone 6 根据官方教程(https://githu ...
- Sping框架初步使用1
Spring核心容器的理论:Spring核心容器就是一个超大工厂,所有的对象都会被当成Spring容器的核心管理对象,Spring把容器中一切对象统称为Bean(只要是一个Java类,Spring就可 ...
- MYSQL登录错误:mysqladmin: connect to server at ‘localhost’ failed
一.mysql登录错误 mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user ...
- 十三、curator recipes之SharedCounter
简介 我们可以通过curator实现对一个分布式环境下共享变量的访问,zookeeper将共享变量维护在同一个路径下. 官方文档:http://curator.apache.org/curator-r ...
- 使用 NamedScope 扩展 Ninject 的 InRequestScope
背景 C#,Ninject,定期执行某计划任务.首先想到的是使用 Quartz 来安排计划任务,于是看是否有相应的集成.果然有:https://github.com/dtinteractive/Nin ...
- MySql的InnoDB存储引擎--索引
索引分类: 1.聚集索引:索引顺序与物理顺序一致. MySql 的 InnoDB 中,主键索引就是聚集索引.好处是,进行搜索的时候,因为索引和物理顺序一致,所以找数据的时候更快. 2.非聚集索引:索引 ...
- OpenStack IceHouse 部署 - 4 - 计算节点部署
Nova计算服务(计算节点) 参考 本页内容依照官方安装文档进行,具体参见Configure a compute node(nova service) 前置工作 数据库 由于我们在Nova(计算管理 ...
- js for循环中点击事件中无法获取每一个i值的问题
好像是第二次遇到这个问题,必须要总结一下!! <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...
- css实现修改默认滚动条样式
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head&g ...