Средство поиска записей OctoberCms с динамической областью действия

Я использую OctoberCMS на основе Laravel и пытаюсь получить список продуктов в форме через Поиск записей.

Вариант использования заключается в том, что средство поиска записей должно отображать доступные продукты на основе динамических условий.

Я попытался добиться этого с помощью параметра «Область» поиска записей для связанной модели формы, но не нашел способа передать динамическое значение в область.

Образец кода --

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 — это динамическое значение, которое я пытаюсь передать через средство поиска записей и попасть в область действия.

Может ли кто-нибудь предположить, что это правильный способ для такого требования или как мне этого добиться?


person xyz    schedule 19.05.2017    source источник


Ответы (1)


В определении полей вы должны использовать атрибут 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);
    }
}
person Nelson Otazo    schedule 19.05.2017