我想创建一个插件在哪里创建Posts
,每个帖子都属于1 Category
。
后端有一个下拉菜单,您可以在创建帖子时选择帖子所属的类别。
但是,我希望此类下拉列表中的选项取决于is和isCategory
所在的模型,而不是我在其中键入字符串。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”的定义。
最终编辑:
总结一下以后遇到同样问题的其他人,有两种方法可以解决问题
你可以
- 使用小部件并通过@Mittul At TechnoBrave 提供的详细解决方案
Dropdown
更改选项 - 或者直接使用
Relation
@dragontree 建议的解决方案中提供的小部件