php - Laravel 多关系数据获取
问题描述
再会。我在 laravel 中有这个关系问题我有三个模型
- 用户
- 状态
- 学校
我在它们之间建立了以下关系
一个。学校 - 用户(一个用户可以注册许多学校)
在用户模型中
public function schools(){
return $this->belongsToMany('App\Models\School', 'school_user', 'user_id', 'school_id');
}
湾。一个学校可以有很多用户
在校模式
public function users(){
return $this->belongsToMany('App\Models\User', 'school_user', 'school_id', 'user_id');
}
C。一所学校属于一个州(即可以在一个州找到)
在校模式
public function states(){
return $this->belongsTo('App\Models\State');
}
d。一个州有很多学校
状态模型
public function schools(){
return $this->hasMany('App\Models\School');
}
现在,我知道如何查询具有直接关系的模型了。例如,我可以获取与学校关联的用户,反之亦然。我也可以得到一个州的学校。
我的问题 如何获取与给定状态的学校相关联的所有用户(使用查询)?假设我们所拥有的只是一个州的名称。
并且可能获取用户关联的所有学校以及与学校关联的日期(时间)?
这就是我所做的。第二个查询没有给我答案
public function details(){
//Get all schools associated with a state
$schools = State::with('schools')->where('id',1)->first();
foreach($schools->schools as $data){
//Get all users associated with the schools
$users = School::with('users')->where('id',$data->id);
dd($users);
}
}
除了这种方法可能不正确之外,我没有得到任何答案。有没有可以解决这个问题的查询或方法?
谢谢。
解决方案
您应该在关系数组属性中看到相关模型
$school= App\Models\School::with('User', 'State')->get();
推荐阅读
- python - 使用分隔符拆分行列表中的行
- python - 对象检测算法在测试算法后输出检测到的对象周围没有边界框的图像
- erlang - Erlang 可以使用哪些代码格式化程序?
- keras - model.fit() 生成“NoneType object is not callable”错误,有什么调试提示吗?
- php - array_flip 和键搜索与 array_search 基准
- ios - iOS 13 - VNDocumentCameraViewController 最大扫描次数
- java - 在 Eclipse(Java) 和 Android Studio 中使用 SQLite db
- intellij-idea - 使用来自 lombok 的@Slf4j Annotation,但仍然出现方法日志未知的错误
- nginx - 将url获取参数转换为nginx中的url段
- javascript - 使用 TouchableWithoutFeedback 关闭键盘 - HighOrderComponent