Laravel Voyager属于“很多”关系显示“未找到结果”

时间:2018-12-05 08:44:58

标签: php mysql laravel voyager

版本信息

  • Laravel:v5.7.15
  • 旅行者:v1.1.10
  • PHP:7.2.8
  • 数据库:MySQL 5.7.14

说明

创建新的属于多个关系时,无法在“航海家”关系创建弹出窗口中选择“显示”字段,无论如何保存,在添加/编辑记录时都无法选择相关实体。

复制步骤

重现行为的步骤: 我有一个表“ products”,“ categories”和“ category_product”(为确保正式,根据官方的默认Laravel命名约定)。 Category_product具有两个字段“ product_id”和“ category_id”,分别是主键和索引。

我转到已经存在的产品面包,尝试建立新的关系,请参见下图

image

如果我还是保存并尝试添加新记录,则无法选择相关类别(肯定存在,有4种)

image

但是,您可以看到有4个空行,我可以对它们进行选择,但是它们不包含键/标签,因为在创建关系时我无法选择它们。

请帮我了解我在做什么错,我已经在GitHub和StackOverflow上进行了大量搜索,找不到确切的问题。

我有使用定义的表名创建的Product和Category甚至CategoryProduct模型。我在Laravel方面尝试了各种关系定义,但我认为它们没有关联。现在我有了这个:

public function categories()
{
    return $this->belongsToMany(Category::class, 'category_product');
}

感谢您与Voyager的出色合作,这是我使用几个月后的第一次真正的奋斗,这仍然使它成为我长期以来使用的最好的工具之一。

这是相同面包和相同关系的编辑视图

image

2 个答案:

答案 0 :(得分:1)

请运行composer require tcg/voyager dev-master并再次测试。我已经解决了类似的问题,并且我认为它也可能会解决您的问题。

答案 1 :(得分:0)

您必须指定“完全限定的模型名称”

看截图 enter image description here