【发布时间】:2017-10-26 22:51:56
【问题描述】:
我想创建一个插件来创建Posts,每个帖子都属于1个Category。
后台有一个下拉菜单,您可以在创建帖子时选择帖子所属的类别。
但是,我希望此类下拉列表中的选项取决于模型 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 中的任何现有记录时,显示以下错误:
模型“plugin\Models\Post”不包含“category_id”的定义。
最终编辑:
总结一下以后遇到同样问题的其他人,有两种方法可以解决问题
你可以
- 使用
Dropdown小部件并使用@Mittul At TechnoBrave 提供的detailed solution here 更改选项 - 或直接使用@dragontree 建议解决方案中提供的
Relation小部件
【问题讨论】:
-
这里有你的答案 - stackoverflow.com/questions/41392323/…
-
您好,Mittul,感谢您的建议。我浏览了您的一些答案,但我认为 Dragontree 的建议似乎更适合使用关系小部件。让我们再深入一点。再次感谢
-
是的,也值得使用。你可以让它工作最适合你。希望此链接对您有所帮助。
标签: octobercms octobercms-backend octobercms-plugins