具有动态范围的OctoberCms记录查找器

时间:2017-05-19 07:47:56

标签: php laravel octobercms octobercms-backend

我使用基于Laravel的OctoberCMS并尝试通过Record Finder获取表单中的产品列表。

用例是记录查找器必须根据动态条件显示可用产品。

我试图通过" Scope"相关表单模型的记录查找器选项,但没有找到将动态值传递给范围的方法。

示例代码 -

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是我试图通过记录查找器传入并进入范围的动态值。

任何人都可以建议这是这种要求的正确方法,或者我应该如何实现这一目标?

1 个答案:

答案 0 :(得分: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);
    }
}