【问题标题】:OctoberCMS Builder Plugin backend dropdownOctoberCMS Builder 插件后端下拉菜单
【发布时间】:2017-10-26 22:51:56
【问题描述】:

我想创建一个插件来创建Posts,每个帖子都属于1个Category

后台有一个下拉菜单,您可以在创建帖子时选择帖子所属的类别。

但是,我希望此类下拉列表中的选项取决于模型 Category,其中 Valuecategory.nameKeycategory.id 而不是我在其中输入字符串。

请帮忙!谢谢

感谢 Dragontree 的建议:这是我的第一次编辑:

我已经将我的关系设置如下:

/models/Category.php

public $hasMany = [
    'posts' => ['stephenli\plugin\Models\Posts']
];

/models/Post.php

public $belongsTo = [
    'category' => ['stephenli\plugin\Models\Category', 'key' => 'category_id']
];       /* I tried with or without  'key' => 'category_id'*/

并在Builder 插件中使用了关系小部件,

/models/post/field.yaml

category_id:
    label: 'stephenli.postgod::lang.plugin.categorypick_label'
    oc.commentPosition: ''
    nameFrom: name
    descriptionFrom: description
    emptyOption: 'No categories found'
    span: auto
    type: relation

/models/post/columns.yaml在哪里

category_id:
    label: 'stephenli.plugin::lang.plugin.categorypick_label'
    type: text
    searchable: true
    sortable: true

当我访问我的Post 插件并单击Create 按钮或尝试修改list 中的任何现有记录时,显示以下错误:

模型“plugin\Models\Post”不包含“category_id”的定义。

最终编辑:

总结一下以后遇到同样问题的其他人,有两种方法可以解决问题

你可以

  1. 使用Dropdown 小部件并使用@Mittul At TechnoBrave 提供的detailed solution here 更改选项
  2. 或直接使用@dragontree 建议解决方案中提供的Relation 小部件

【问题讨论】:

  • 您好,Mittul,感谢您的建议。我浏览了您的一些答案,但我认为 Dragontree 的建议似乎更适合使用关系小部件。让我们再深入一点。再次感谢
  • 是的,也值得使用。你可以让它工作最适合你。希望此链接对您有所帮助。

标签: octobercms octobercms-backend octobercms-plugins


【解决方案1】:

define the dropdown options有多种方式。

但在这种情况下,听起来您应该使用relation widget 而不是普通下拉菜单:

category:
    label: Category
    type: relation
    nameFrom: name 

PS。这还需要您在 PostCategory 模型中定义关系。但无论如何你都应该这样做。

还值得注意的是,字段名称(在 fields.yaml 中)应与关系名称匹配。

【讨论】:

  • 您好 Dragontree,再次感谢您的回复。但是,请查看我的编辑,看看我编辑后有什么问题。谢谢!
  • 字段名称(在 fields.yaml 中)应与关系名称匹配。所以你应该只使用category而不是category_id
  • 对于任何关注的人来说,当dragontree说“还值得注意的是,字段名称(在fields.yaml中)应该与关系的名称匹配。”这是字面上正确的。在我的情况下 public $belongsTo = [ 'course_level_id' => ['Geomantics\Coursetech\Models\CourseLevel'], ];和 course_level_id: nameFrom: name
猜你喜欢
  • 2017-09-16
  • 2017-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-20
  • 1970-01-01
相关资源
最近更新 更多