【发布时间】:2020-01-12 14:40:30
【问题描述】:
我有两个表,用户和作业。用户拥有一份工作:
来自用户模型:
public function getJobs(){
return $this->belongsTo('App\Jobs','operative_id','id');
}
public function getIncompleteJobs(){
return $this->belongsTo('App\Jobs','operative_id','id')
->where('jobStatus_id', '=', 1);
}
这很好,但作业在名为“status_id”的字段中具有状态(已完成、待处理等),我想进一步细化 getJobs(),使其仅返回 status_id 等于 2 的那些。
可能是我太厚了!
从 cmets 编辑:
$op = App\User::where('client_id', $us->getCompany->id)
->where('operative', 1)
->orderby('name')
->where('active', 1)
->with('getIncompleteJobs')
->get();
【问题讨论】:
-
您应该能够将
->where('status_id', '=', 2);附加到您的->belongsTo();看看这是否有效。 -
->where('jobStatus_id', '=', 1);应该是status_id? -
另一件事;
jobs(getJobs()和getIncompleteJobs())表示会返回很多结果,但您只返回 1(belongsTo()返回单个记录或null),并且您的模型名称App\Jobs应该是单数Job... 检查您的命名约定。
标签: php laravel laravel-5 eloquent relationship