我有一个分支、branch_products 和 invoices,以及 invoice_products 模型。
分支有很多分支产品,分支有很多发票,
invoices 有很多 invoice_products branch_products 有很多 invoice_products
现在回到这个问题,当创建一个新的发票产品时,我希望 BelongsTo 字段只显示发票分支中的分支产品。
// InvoiceProduct.php
public function invoice() {
return $this->belongsTo('App\Models\Invoice');
}
public function branchProduct() {
return $this->belongsTo('App\Models\BranchProduct');
}
// I need something like this
public function getAvailableBranchProducts() {
// get the branch id of the invoice, doesn't work
$branchId = $this->invoice->branch_id;
// get branch products that has the given branch id, doesn't work
return whereHas('branch_products', function ($query) use ($branchId) {
$query->where('branch_id', $branchId);
})->get();
}
我不知道我将如何解决这个问题。我试过WhereHas,本地范围,但没有运气。
我需要它用于 Laravel Nova。