我想让我的系统中的数据库(例如,用户组列表)(例如用户组列表)(例如,用户组列表)更容易创建下拉菜单。我通常遵循这个系统的领域驱动设计方法,包括稍微修改版本的Repository模式。 (该系统使用PHP。)Domain Model/Repository的下拉列表
由于检索给定域对象类的下拉列表是一种常见操作,我想知道是否适合在相关存储库上创建getDropDownList()
方法。
例如,假设有问题的域对象被称为“类别”。我建议的是创建一个CategoryRepository::getDropDownList()
方法,该方法将返回一个关联的类别ID和标题数组,准备用于创建一个HTML <select>
列表。
在过去的项目中,当我在一个类库中创建了一个getDropDownList()
方法时,其他开发人员之一表示,这样一种方法不属于该类,并且说它比视图更重要,该模型。但我不这样看,因为该方法的目的仅仅是返回列表的原始数据。它甚至不需要用来创建下拉列表;它可以转换为JSON数据或任何其他数量的东西。
我的主要问题是:
- 难道一个
getDropDownList()
方法,就像我在一个仓库类属于所描述的?如果不是,它应该去哪里呢? - 这可能只是一个命名问题吗?如果我把它称为
getSimpleList()
或getArrayForList()
来表明它返回一个数组,而不是已经呈现的HTML,那么也许会更好一些?
要继续的类实例,从这个方法返回的数据将返回类别ID的关联数组作为键和类别名称为值,例如:
array(
1 => 'Category A',
2 => 'Category B',
...
)
我会选择选项2,渲染下拉是视图的作业 – Orangepill
@Orangepill,只是好奇,你会怎么说呢?我刚刚提出了'getArrayForList()',这正是我目前所倾向的。 –
或者可能类似getNames – Orangepill