Laravel Nova-创建新记录时如何过滤BelongsTo字段选择?

时间:2018-10-14 16:34:44

标签: php laravel eloquent laravel-nova

我有一个分支,branch_products和发票以及invoice_products模型。

分支有很多branch_products, 分支有很多发票,

发票有很多发票产品 branch_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需要它。

1 个答案:

答案 0 :(得分:0)

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

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

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