У меня есть филиал, филиал_продукты и счета-фактуры, а также модели 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.