【问题标题】:Displaying categories and thei subcategories in OctoberCMS backend form在 OctoberCMS 后端表单中显示类别及其子类别
【发布时间】:2020-10-28 17:52:05
【问题描述】:

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

Item 模型与 CategorySubCategory 模型具有 $belongsTo 关系,Category 也与 SubCategory 具有 $belongsToMany 关系,我创建了一个具有 relation widget 的表单来显示类别,但我不知道如何显示所选类别的子类别relation widget,当用户选择新类别时,子类别下拉框中将显示不同的子类别列表。

【问题讨论】:

    标签: laravel octobercms octobercms-plugins octobercms-backend


    【解决方案1】:

    好吧,我之前的帖子被删除了,因为我只包含了一个链接和一个简短的描述,但没有包含代码。

    您正在寻找的是“字段依赖项”:

    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', ...];
        }
    }
    

    【讨论】:

    • 感谢您的回答,但我需要使其动态化,我找到了一个显示此 github.com/octoberrain/test-plugin 的测试插件
    • 这确实使它具有动态性——上面示例中的 getCountryOptions() 和 getStateOptions() 只是硬编码数据的示例。您可以查询数据库或执行您可能需要执行的任何其他计算来生成要返回的数组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多