我有一个FuelPHP应用程序,它具有分为两层的分层用户结构,corporate
并且store
. 该应用程序包括一个允许自定义字段的票务系统。
可以在级别和/或级别定义自corporate
定义字段store
。
在corporate
级别定义的自定义字段用作“默认”自定义字段。也就是说,任何未覆盖“默认”自定义字段的权限范围store
内的任何人都可以访问这些自定义字段。corporation
在级别定义的自定义字段store
可以:
- 覆盖“默认”(
corporate
级别)自定义字段 - 充当
store
未在级别定义的附加级别自定义corporate
字段
昨天我编写了逻辑来确定商店的正确字段。它从数据库中获取所有定义的自定义字段,运行一些比较,并吐出适合store
范围的自定义字段数组。
我最初在我的Fields
控制器中编写了逻辑,但今天我意识到我需要从应用程序的其他区域访问该数据,通常是在没有Fields
可用的控制器实例时(没有显式创建一个)。
我通常回避在我的数据模型中添加太多逻辑,主要是因为我不确定何时合适。但是,在这种情况下,我静态地重写了逻辑并将其Field
作为for_store($id)
方法放入我的模型中。它有效,但我想确保我没有在这里做一些可怕的错误。
这是您将放在数据模型而不是控制器中的逻辑吗?我的想法是这样的:因为它访问数据而不对其进行操作,是的,它属于数据模型。而如果我要实际更改数据,它将属于控制器。那有意义吗?
从一个角度来看,我对最佳实践MVC
感兴趣。