【发布时间】:2019-05-06 18:49:45
【问题描述】:
版本信息
- Laravel:v5.7.15
- 航海者:v1.1.10
- PHP:7.2.8
- 数据库:MySQL 5.7.14
说明
当我创建一个新的多属关系时,我无法在 Voyager 关系创建弹出窗口中选择显示字段,如果我仍然保存,我在添加/编辑记录时无法选择相关实体。
复制步骤
重现行为的步骤: 我有一个表格“products”、“categories”和“category_product”(为了确定,按照官方的默认 Laravel 命名约定)。 Category_product 有两个字段“product_id”和“category_id”,主键和索引。
我去产品面包,已经存在,尝试建立新的关系,见下图
如果我仍然保存并尝试添加新记录,我无法选择相关类别(肯定存在,有 4 个)
但是,您可以看到有 4 个空行,我可以对其进行排序,但它们不包含键/标签,因为我在创建关系时无法选择它们。
请帮我理解我做错了什么,我已经在 GitHub 和 StackOverflow 中搜索了很多,我找不到这个确切的问题。
我创建了 Product 和 Category 甚至 CategoryProduct 模型并定义了表名。我在 Laravel 端尝试了各种关系定义,但我认为它们不相关。现在我有了这个:
public function categories()
{
return $this->belongsToMany(Category::class, 'category_product');
}
感谢您使用 Voyager 完成了出色的工作,这是我使用数月后的第一次真正的挣扎,这仍然使它成为我长期以来使用过的最好的工具之一。
这是同一个面包和同一个关系的编辑视图
【问题讨论】: