我正在尝试学习zend框架,并设法完成了他们所拥有的整个快速入门教程。然而,有些东西我根本无法理解,并希望有人可以帮助我。
在本教程中,您将创建一个db-table类,一个映射器和一个模型。我阅读了文档,并了解了db-table类的用途(定义表,关系,创建/获取行)。查询db-table类时,您将获得类db-table-row的对象,您可以使用该对象来操作db中的特定记录。
但是,我无法理解为什么教程会让我创建映射器和模型,也不能理解在模型中定义getter / setter方法的原因(不应该由db-table-row提供?)< / p>
即使在控制器中,他们也从模型类和映射器类创建了一个对象,然后他们完全忽略了模型对象,并且只使用了映射器对象。
是否有必要拥有这3个班级?每个人有什么不同的目的?据我所见,我需要的只是db-table类,我是对的吗?
答案 0 :(得分:3)
当你查询db-table类时,你会得到一个类的对象 分贝表行
不,你得到db-table-rowset而不是行的集合。 其次
你甚至不需要db-table类
$dbTable = new Zend_Db_Table('tableName');
但是由于db-table类允许你定义其中的其他表(业务逻辑)之间的关系,因此变得很重要。
当实体对于例如用户表很重要时, db-table-row变得很重要。在用户的自定义db-table-row中,您可以添加方法getTopics();
,该方法返回由该用户创建的所有主题的行集,从而有助于业务逻辑。