企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
该层为业务的抽象,采用OOP思想进行业务相关的封装与继承。 并不是一个Model就对应一个表,要做到高内聚低耦合的关键在于对象的边界一定要划分清晰,如何“拆”才是关键。 * CURD ## 注:一般情况下非复用性函数无需写在Model里边(必须同一个函数有>=2个地方调用)。 本身Model应该是继承了框架的模型,它已经自带了一些数据的操作方法,下边列举一个【反例】来说明: ~~~php { public function save(Post $post); public function byId(PostId $id); public function all(); public function byCategory(CategoryId $categoryId); public function byTag(TagId $tagId); public function withComments(PostId $id); public function groupedByMonth(); // ... } ~~~ 如果这些函数实现的操作,都只在【一个地方使用了一次】。这样封装进Model是没有复用性的意义的。 定义Model的关联模型操作与其他属性的方法不在限制之内。 > 注意事项: > 1. 一般情况下建议直接return object,尽量不要做数组的拼装返回。 > 3. 禁止在模型中使用事务处理,防止事务嵌套。