【发布时间】:2016-04-18 05:27:43
【问题描述】:
我有以下型号:
- 约会 [ 属于时间段 |属于用户]
- 时间段 [ hasMany Appointment ]i>
- 用户 [ hasOne 约会 | HasOne 详情]
- 详细信息 [ 属于用户]
我正在尝试使用以下查询从 Appointment 模型开始加载 Details 数据(Appointment 有一个用户,该用户有一个 Details 记录):
$apps = Appointment::with('timeslot')->with('user')->with('user.details')->get();
这会在 Builder.php 中引发以下错误
在非对象上调用成员函数 addEagerConstraints()
为什么我在这里调用一个非对象,为什么我的查询不起作用?
编辑:
这是我的用户模型上的关系:
public function details() {
dd($this->role_id);
switch($this->role_id) {
case 3:
return $this->hasOne('App\CandidateDetails', 'user_id');
break;
case 2:
return $this->hasOne('App\EmployerDetails', 'user_id');
break;
}
}
我知道使用数据透视表会更好地实现这一点,这是一个学习过程。 dd() 在我的查询调用时返回 null,但在其他调用中工作正常。这里发生了什么?
【问题讨论】:
标签: php laravel orm laravel-5 eloquent