关于模型的一个问题

请教一下:
现有一个需求,表要在管理后台创建,可能会有很多张表。每张表对应的模型都是类似的,如果创建一张表,就生成一个模型,这样的话,模型会太多了。请问一下,有没有方法让没有模型的表,共用一个默认模型呢?

看样子这个问题确实是有问题,最终解决办法,还是用DB来做了。感谢各位朋友的回复!

longren610
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
Epona
最佳答案

@longren610 你需要更改你的设计了,或者不必要的表不创建模型。但是一个模型对应多个表是不可取的。

2周前 评论
讨论数量: 13

共用一个模型!!!亏你想得出

2周前 评论
Epona

你这个想法是错误的。

2周前 评论
longren610

@Epona 问题是如果不共用,表会很多,模型也很多。相当于重复做了很多不必要的工作。

2周前 评论

在models中的都有会一个protected $table 当你的模型名称与真实表不同时,指定表名。所以说想要共享model是不可能的。

2周前 评论
Epona

@longren610 你需要更改你的设计了,或者不必要的表不创建模型。但是一个模型对应多个表是不可取的。

2周前 评论
longren610

@Epona 好吧,我再想想办法。谢谢了~

2周前 评论
longren610

@yangchangdong 好吧,谢谢!

2周前 评论

主要你建的表是做什么用的,,可以共用一个表来存数据的。。然后字段可以用JSON

2周前 评论
longren610

@半人间 就是做流程管理,每个流程的字段都不一样。所以需要对应每个流程创建一张表。共用一个表肯定是不行的。因为每个流程都会有独立的字段数据。

1周前 评论
心智极客

工作流应该用一套通用的设计实现,至于数据字段只需要关联的数据表或者 json 列就可以搞定,一个流程一个表这个设计本身就不合理

1周前 评论
longren610: 如果关联数据表或json。流程数据记录没法存储吧?比如请假流程,会有很多请假记录的。这样查询起来,效率会是个大问题吧。 1周前
Haven

可以不采用它的ORM模式,在你的模型里面不要继承Model类,然后用DB类构造SQL操作数据库来实现你的功能就可以啦。

不过可以多学习了解一下它的ORM思想,用多了你就会发现用它非常方便了。 :smile:

1周前 评论
longren610: 是的,确实很方便,所以才在想有没有办法可以解决这问题呢 1周前

你可以在model中使用构造函数修改table属性来实现这个想法,但上面的人说的都对,这个想法是非常错误的,不推荐去这么做。

1周前 评论
longren610: 好的,感谢回答。 1周前

共用一个模型 只能是类似tp的 M('User')->select(); //这样的吧
这要封装一个方法 调用那个方法 修改模型绑定的表

表太多 一个个的建立模型很麻烦
所以我开发了一个根据表名建立所有模型的扩展
larmodel

1周前 评论
longren610: 感谢回答。 1周前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

社区文档:

将托管在 packagist.org 和 github.com 的扩展包使用国内 CDN 加速
GitHub Laravel 扩展包 TOP 250
速查表方便快速查询框架功能,支持手机访问,支持中英文版本
Laravel 中文文档,由社区用户翻译和维护,将会保持一直更新
此文档的目的,就是为了提高技术团队的凝聚力、一致性和生产效率。
开发环境的部署,开发者工具的选择,适用于 Mac 和 Windows。
浓缩过后的精华
Laravel Nova 后台管理面板文档的中文翻译
Lumen 中文文档,由社区用户翻译和维护,将会保持一直更新
Laravel 下知名扩展包 Dingo API 的中文文档,Laravel API 开发必知必会