OctoberCMS Builder 插件后端下拉列表
OctoberCMS Builder Plugin backend dropdown
我想创建一个插件,其中创建Posts
,每个post属于1个Category
。
后台有一个下拉菜单,您可以在创建post时选择post属于哪个类别。
但是,我希望此类下拉列表中的选项取决于模型 Category
,其中 Value
是 category.name
而 Key
是 category.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
中的任何现有记录时,显示以下错误:
Model 'plugin\Models\Post' does not contain a definition for 'category_id'.
最终编辑:
总结一下以后遇到同样问题的其他人,有两种方法可以解决问题
您可以
- 使用
Dropdown
小部件并使用 @Mittul At TechnoBrave 提供的 更改选项
- 或者直接使用@dragontree
建议的解决方案中提供的Relation
小部件
有几种方法可以define the dropdown options。
但在这种情况下,听起来您应该在普通下拉菜单中使用 relation
widget:
category:
label: Category
type: relation
nameFrom: name
PS。这还需要您定义 Post
和 Category
模型中的关系。但无论如何你都应该这样做。
还值得注意的是,字段名称(在fields.yaml中)应该与关系的名称相匹配。
我想创建一个插件,其中创建Posts
,每个post属于1个Category
。
后台有一个下拉菜单,您可以在创建post时选择post属于哪个类别。
但是,我希望此类下拉列表中的选项取决于模型 Category
,其中 Value
是 category.name
而 Key
是 category.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
中的任何现有记录时,显示以下错误:
Model 'plugin\Models\Post' does not contain a definition for 'category_id'.
最终编辑:
总结一下以后遇到同样问题的其他人,有两种方法可以解决问题
您可以
- 使用
Dropdown
小部件并使用 @Mittul At TechnoBrave 提供的 - 或者直接使用@dragontree 建议的解决方案中提供的
Relation
小部件
有几种方法可以define the dropdown options。
但在这种情况下,听起来您应该在普通下拉菜单中使用 relation
widget:
category:
label: Category
type: relation
nameFrom: name
PS。这还需要您定义 Post
和 Category
模型中的关系。但无论如何你都应该这样做。
还值得注意的是,字段名称(在fields.yaml中)应该与关系的名称相匹配。