【发布时间】:2018-08-10 03:16:50
【问题描述】:
我有一个 Laravel 5.5 应用程序,我有以下模型。
- 工作
- 工作表
- 用户
我的用户模型有一个关系
public function jobs() {
$this->hasMany('App\Job','user_id')->with('jobSheets');
}
我的工作模型有一个关系
public function jobSheets() {
$this->belongsToMany('App\JobSheet','jobs_jobsheets','job_id','sheet_id');
}
我正在尝试使用最新的工作表返回所有当前登录用户的工作。
一个工作可以有很多工作表,但我只想返回最新的。
我已经在我的控制器中尝试过
return Auth::user()->jobs;
但是,这会返回针对该作业的所有作业表。
我还尝试在我的工作模型上创建另一种方法。
public function latestJobsheet()
{
return $this->jobsheets->first();
}
并将我在用户模型上的作业方法修改为:
public function jobs() {
$this->hasMany('App\Job','user_id')->with('latestJobsheet');
}
但我收到以下错误:
调用未定义的方法 Illuminate\Database\Query\Builder::addEagerConstraints()
【问题讨论】:
-
如何确定最新的工作表?最高 id?
-
您能否就答案提供反馈?
-
@Dev.Wol 你有没有办法只得到第一个工作表?
标签: php laravel eloquent laravel-eloquent