Я использую OctoberCMS на основе Laravel и пытаюсь получить список продуктов в форме через Record Finder.
Сценарий использования заключается в том, что средство поиска записей должно отображать доступные продукты на основе динамического условия.
Я пытался добиться этого с помощью опции «Область» средства поиска записей для связанной модели формы, но не нашел способа передать динамическое значение в область.
Образец кода —
class A extends Model
{
public $belongsTo = [
'product' => [
'Plugin\Models\B',
'key' => 'id',
'scope' => 'specificProduct'
],
];
}
class B extends Model
{
public function scopeSpecificProduct($query , $product_type)
{
return $query->where('product_type', $product_type);
}
}
Здесь $ product_type — это динамическое значение, которое я пытаюсь передать через средство поиска записей и получить в области видимости.
Кто-нибудь может предположить, что это правильный путь для такого требования или как мне этого добиться?
В определении ваших полей вы должны использовать scope
атрибут
fields:
products:
label: Products
type: recordfinder
scope: specificProduct
При этом вторым параметром вашей области будет A
модель, которая создает или обновляет
class B extends Model
{
public function scopeSpecificProduct($query , $model)
{
return $query->where('product_type', $model->depend_attribute);
}
}
Других решений пока нет …