如何使用codeigniter数据库模型

如何使用codeigniter数据库模型,codeigniter,Codeigniter,我想知道如何使用代码点火器中的模型 假设我在菜单项数据库中有两个表,我想在不同的控制器中查询每个表的信息。我是否为每个表创建不同的模型类,并在其中布局函数 谢谢 模型应包含检索数据和将数据插入数据库的所有功能。控制器将加载一个模型: $this->load->model('model_name'); 然后,控制器通过模型中定义的抽象函数获取视图所需的任何数据 最好为每个表创建不同的模型,尽管它不是必需的 您应该了解MVC设计模式,它被codeigniter和许多其他框架使用,因为它

我想知道如何使用代码点火器中的模型

假设我在菜单项数据库中有两个表,我想在不同的控制器中查询每个表的信息。我是否为每个表创建不同的模型类,并在其中布局函数


谢谢

模型应包含检索数据和将数据插入数据库的所有功能。控制器将加载一个模型:

$this->load->model('model_name');
然后,控制器通过模型中定义的抽象函数获取视图所需的任何数据

最好为每个表创建不同的模型,尽管它不是必需的

您应该了解MVC设计模式,它被codeigniter和许多其他框架使用,因为它是高效的,并且允许代码重用。有关型号的更多信息,请参见Codeigniter文档:


模型应包含检索数据和将数据插入数据库的所有功能。控制器将加载一个模型:

$this->load->model('model_name');
然后,控制器通过模型中定义的抽象函数获取视图所需的任何数据

最好为每个表创建不同的模型,尽管它不是必需的

您应该了解MVC设计模式,它被codeigniter和许多其他框架使用,因为它是高效的,并且允许代码重用。有关型号的更多信息,请参见Codeigniter文档:


CodeIgniter非常灵活,由您自己决定。没有说明应该如何组织代码


也就是说,为了保持代码干净且易于维护,我建议您尝试将每个模型限制为处理单个表,或者至少处理单个数据库实体。您当然希望避免使用一个模型来处理所有数据库表。

CodeIgniter非常灵活,由您自己决定。没有说明应该如何组织代码


也就是说,为了保持代码干净且易于维护,我建议您尝试将每个模型限制为处理单个表,或者至少处理单个数据库实体。您当然希望避免使用单一模型来处理所有数据库表。

就我的口味而言,CodeIgniter在这里太灵活了,我宁愿称之为模糊。CI“模型”没有规范,没有接口,它可以是不同的:

  • 一个实体域对象,其中每个实例基本上表示一个表的记录。有时它是一个“贫血”的域对象,每个属性直接映射到一个DB列,很少有行为,对对象关系和“图形”了解很少或根本不了解(比如,DB中的外键在PHP中只是整数ID)。或者,它也可以是一个“丰富(或真实)的域对象”,具有所有的商业智能,并且还了解关系:比如说,我们有
    $person->getAccountId()
    (返回int)而不是
    $person->getAccount()
    ;也许还知道如何保持自身(也许还知道完整的图形或相关对象——也许是一些“肮脏”的概念)

  • 与对象持久性和/或一般DB查询相关的服务对象:可以是DataMapper、DAO等。在这种情况下,我们通常有一个对象的单个实例(单实例)(很少或没有状态),通常每个DB表或域类一个

当你在CI文档或论坛中阅读关于(比如)人物模型的文章时,你永远不会知道我们在处理什么样的模式。更糟糕的是:通常是这些根本不同的模式的笨拙混合


根据我的经验,这种非正式/模糊性并不是CI特有的,而是PHP框架特有的。

就我的口味而言,CodeIgniter在这里太灵活了——我宁愿称之为模糊性。CI“模型”没有规范,没有接口,它可以是不同的:

  • 一个实体域对象,其中每个实例基本上表示一个表的记录。有时它是一个“贫血”的域对象,每个属性直接映射到一个DB列,很少有行为,对对象关系和“图形”了解很少或根本不了解(比如,DB中的外键在PHP中只是整数ID)。或者,它也可以是一个“丰富(或真实)的域对象”,具有所有的商业智能,并且还了解关系:比如说,我们有
    $person->getAccountId()
    (返回int)而不是
    $person->getAccount()
    ;也许还知道如何保持自身(也许还知道完整的图形或相关对象——也许是一些“肮脏”的概念)

  • 与对象持久性和/或一般DB查询相关的服务对象:可以是DataMapper、DAO等。在这种情况下,我们通常有一个对象的单个实例(单实例)(很少或没有状态),通常每个DB表或域类一个

当你在CI文档或论坛中阅读关于(比如)人物模型的文章时,你永远不会知道我们在处理什么样的模式。更糟糕的是:通常是这些根本不同的模式的笨拙混合


根据我的经验,这种非正式性/模糊性并不特定于CI,而是特定于PHP框架。

No不要为每个表创建不同的类。我只在开始新的主题时才改变课程。如果你想在你的博客上发帖,那就去一个完全不同的地方,然后改变课程。与控制器相同,控制器中可以有许多函数属于同一主题。不要为每个表创建不同的类。我只在开始新的主题时才改变课程。如果你想在你的博客上发帖,那就去一个完全不同的地方,然后改变课程。与控制器相同,您可以在控制器中具有属于同一su的许多功能