【发布时间】:2019-09-18 23:00:00
【问题描述】:
所以我的jobs 模型上有approved_quote 关系。
public function approved_quote()
{
return $this->hasOne(JobQuote::class, 'job_id')->whereNotNull('approved_at');
}
我想撤回已引用的产品。我尝试了几种方法,但都有意想不到的结果。
尝试 1
public function quoted_job_products()
{
return $this->hasMany(JobProduct::class, 'job_id')->where('job_quote_id', $this->approved_quote()->first()->id ?? 0);
}
但是$this->approved_quote->get(); 撤回了 14 条不真正相关(或正确)的记录,因此 ->first() 只是撤回了第一个错误的记录。
尝试 2
public function quoted_job_products()
{
return $this->hasMany(JobProduct::class, 'job_id')->where('job_quote_id', $this->approved_quote->id ?? 0);
}
$this->approved_quote 返回 null,因此它不起作用。
关于如何实现这一点有什么建议吗? (最好在jobs 上没有approved_quote_id,但如果需要,我会这样做)。
【问题讨论】:
-
Wardie 可以和我们分享一下工作、报价和产品之间的关系吗?
-
工作有很多引用。工作有一个接受的报价(报价与接受_at)。行情有产品。
-
能否分享一下模特关系,这样我可以帮你吗?
标签: laravel laravel-5 relationship