关于模型的一个问题

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

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

longren610
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
Epona
最佳答案

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

3个月前 评论
讨论数量: 13

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

3个月前 评论
Epona

你这个想法是错误的。

3个月前 评论
longren610

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

3个月前 评论

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

3个月前 评论
Epona

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

3个月前 评论
longren610

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

3个月前 评论
longren610

@yangchangdong 好吧,谢谢!

3个月前 评论

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

3个月前 评论
longren610

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

3个月前 评论

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

3个月前 评论
longren610 (楼主) 3个月前
Haven

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

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

3个月前 评论
longren610 (楼主) 3个月前

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

3个月前 评论
longren610 (楼主) 3个月前
lyxxxh

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

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

3个月前 评论
longren610 (楼主) 3个月前

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