2

我有一个分支、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。

4

1 回答 1

-1

您可能已经解决了这个问题,但是有一个添加了 Nova 字段的包可以帮助您(或其他访问此页面的人)。

https://packagist.org/packages/orlyapps/nova-belongsto-depend

安装和使用非常简单。您可以使用它或从中获得一些想法。

于 2018-12-31T16:30:37.007 回答