【问题标题】:Laravel 表枢轴命名法
【发布时间】:2022-01-22 19:30:12
【问题描述】:

我有一个菜单表、一个组菜单和这个表的数据透视表。

menus
menu_groups
menu_menu_group or menu_group_menu?

这个命名法正确吗?

谢谢!

【问题讨论】:

  • 你可以有效地使用任何你想要的名字,只要你告诉 Laravel 模型中的表名 (a)(使用 protected $table = "whatever")并且在关系中作为传递给 hasManyThrough() 闭包的参数(或您使用的任何关系)。
  • @GilesBennett 您可以通过这样做修改表名是对的,但也许他们想遵循 Laravel 的默认命名法。
  • @shaedrich 是的,最佳实践的正确命名法。
  • 还没有尝试过,但两者都应该是可能的,因为 Laravel 相当聪明,它应该可以得到它。

标签: laravel eloquent laravel-8


【解决方案1】:

基于 Laravel 模型的正确名称将是 menu_menu_groups

【讨论】:

    【解决方案2】:

    它基于模型的类名。它获取每个模型的类基名(类名)并将它们转换为蛇形案例:

    Str::snake(class_basename($modelInstance));
    

    在获得 2 个名称的数组后,它会调用 sort:

    sort($segments);
    

    然后它implodes 那个数组,用下划线连接它,并确保它的小写:

    return strtolower(implode('_', $segments));
    

    因此,如果您的课程是 MenuMenuGroup,那么按照惯例,枢轴将是:menu_menu_group

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多