Php Laravel Nova-创建新记录时,如何筛选字段选择的项?

Php Laravel Nova-创建新记录时,如何筛选字段选择的项?,php,laravel,eloquent,laravel-nova,Php,Laravel,Eloquent,Laravel Nova,我公司有分公司、分公司产品、发票和发票产品型号 branch拥有许多branch_产品, 分行有很多发票 发票有许多发票产品 branch_products有许多发票_产品 现在回到问题上来, 创建新发票产品时,我希望BelongsTo字段仅显示发票分支中的分支产品 // InvoiceProduct.php public function invoice() { return $this->belongsTo('App\Models\Invoice'); } public f

我公司有分公司、分公司产品、发票和发票产品型号

branch拥有许多branch_产品, 分行有很多发票

发票有许多发票产品 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();
}
我不知道该怎么解决这个问题。我试过在何处使用局部示波器,但没有成功


我需要它来帮助拉威尔·诺瓦。

您可能已经解决了这个问题,但有一个软件包添加了一个诺瓦字段,可以帮助您(或其他人到达此页面)


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

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


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

当您要创建发票产品时,与此没有关系,因为发票产品尚未创建。它还没有被创建。你明白了吗。那么,没有办法过滤分公司产品以只显示发票分公司的分公司产品吗?你必须重新考虑你的项目设计,我猜你正在尝试创建一个新发票并将产品分配给发票。可能是您首先选择了“分支”。因此,我的建议是,当用户选择分支时,使用AJAX调用获取“分支产品”,并填写到“产品”选择框中。当您要创建发票产品时,这与此没有关系,因为尚未创建发票产品。它还没有被创建。你明白了吗。那么,没有办法过滤分公司产品以只显示发票分公司的分公司产品吗?你必须重新考虑你的项目设计,我猜你正在尝试创建一个新发票并将产品分配给发票。可能是您首先选择了“分支”。因此,我的建议是,当用户选择分支时,使用AJAX调用获取“分支产品”,并填写到“产品”选择框中。