Laravel Nova - Как отфильтровать выбор полей BelongsTo при создании новой записи? - PullRequest
0 голосов
/ 14 октября 2018

У меня есть филиал, филиал_продукты и счета-фактуры, а также модели invoice_products.

В филиале много филиалов-продуктов, в филиале много счетов-фактур,

в счетах-фактурах много invoice_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 голосов
/ 31 декабря 2018

Возможно, вы уже решили эту проблему, но есть пакет, который добавляет поле Nova, которое может помочь вам (или другим людям, попадающим на эту страницу).

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

Довольно прост в установке и использовании.Вы можете использовать это или получить некоторые идеи из этого.

...