关于模型的一个问题

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

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

longren610
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
Epona
最佳答案

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

4年前 评论
讨论数量: 12

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

4年前 评论
Epona

你这个想法是错误的。

4年前 评论
longren610

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

4年前 评论

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

4年前 评论
Epona

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

4年前 评论
longren610

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

4年前 评论
longren610

@yangchangdong 好吧,谢谢!

4年前 评论

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

4年前 评论
longren610

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

4年前 评论
Haven

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

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

4年前 评论
longren610 (楼主) 4年前

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

4年前 评论
longren610 (楼主) 4年前

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

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

4年前 评论
longren610 (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!