动态自定义字段:JSON,数据透视,morphToMany?

时间:2019-07-10 09:06:56

标签: laravel eloquent laravel-5.7

我目前正在为我的Laravel应用开发“自定义字段”功能。

应该怎么做

每个CustomField应该可由用户编辑。 CustomField可以具有typestringint,...)和value

现在可以将创建的CustomField添加到另一个模型(也许是User)。

预期结果

应该使用$user->fields->company->value

这样的名称来调用自定义字段的值

应该很容易遍历以下字段:$user->fields()->each(...)

我的问题

我不确定该走哪条路:当然,我可以创建一个名为CustomField的模型和一个带有

的表
  • id
  • type

并将它们作为JSON保存到User$user->fields的类型为JSON)。但是我不确定这是否是最好的方法,因为我也希望以后可以搜索这些字段。那么也许 pivot 是要走的路?甚至 morphToMany

哪种方式是最“ Laravel风格”的方式?

谢谢您的想法(也许还有1-2个示例;-))

1 个答案:

答案 0 :(得分:0)

应用程序结构不是唯一的,因此开发人员可能会以不同的方式实现它。 但是,在这种情况下,最佳实践可能是CustomField的单独模型。

  1. 为了有效地使用自定义字段值作为可搜索值,Laravel Scout是一个非常强大的选择,它提供了一个简单的基于驱动程序的解决方案,用于向Eloquent模型添加全文本搜索。
  2. 据我了解您的问题,每个用户都有很多CustomFields。因此最好在不同的表和模型中使用。