在 OctoberCMS 后端表单中显示类别和子类别

Displaying categories and thei subcategories in OctoberCMS backend form

我正在开发一个使用 Builder 插件来显示项目及其类别和子类别的插件。

Item模型与CategorySubCategory模型有$belongsTo关系,Category与[=14=有$belongsToMany关系],我创建了一个表单,其中有一个 relation widget 来显示类别,但我不知道如何显示 selected 类别的子类别 relation widget 以及当用户select 新类别子类别下拉框中将显示不同的子类别列表。

嗯,我之前的 post 被删除了,因为我只是包含了一个 link 和一个简短的描述,但没有代码。

您要找的是“字段依赖”:

https://octobercms.com/docs/backend/forms#field-dependencies

您将无法通过 Builder 插件完成所有操作 - 您将不得不编写一些代码。这是一个例子:

您的模型的 fields.yaml 文件:

country:
    label: Country
    type: dropdown

state:
    label: State
    type: dropdown
    dependsOn: country

然后,在控制器中:

public function getCountryOptions()
{
    return ['au' => 'Australia', 'ca' => 'Canada'];
}

public function getStateOptions()
{
    if ($this->country == 'au') {
        return ['act' => 'Capital Territory', 'qld' => 'Queensland', ...];
    }
    elseif ($this->country == 'ca') {
        return ['bc' => 'British Columbia', 'on' => 'Ontario', ...];
    }
}