Laravel Nova — Как отфильтровать выбор полей BelongsTo при создании новой записи?

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

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

накладные имеют много 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.

0

Решение

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

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]