我正在按照Lendr教程制作 Joomla 3.2 组件。他们似乎将所有数据库列作为受保护字段添加到他们的模型中(使用辅助 get/set 函数来操作它们)和 CRUD 操作作为函数。他们的表类只包含一个构造函数:
function __construct( &$db ) {
parent::__construct('#__lendr_books', 'book_id', $db);
}
当他们获取或保存项目时,他们返回其表类的实例而不是模型的更新版本,例如,如果您保存了新项目,模型上受保护的 ID 字段将为零,但返回的 ID表对象将非零。
所以对我来说,将所有列都放在模型上是没有意义的,最好在表类上显式声明它们,或者在模型上保持它们更新并且不返回任何表对象。
Joomla 中内置的组件没有使用新的 MVC 约定,而且似乎到处都是除了 CRUD 操作之外的地方。
使用非传统 MVC 类在 Joomla 3.2 中模型应该做什么以及表应该做什么有明确的定义吗?