如何在CodeIgniter中设计一些复杂的应用程序?

时间:2012-10-30 10:01:50

标签: php codeigniter design-patterns one-to-many has-and-belongs-to-many

我正在编写基于数据库的Web应用程序,其中包含许多具有许多关系的表。

例如,我有[项目]的表,它有很多关系。

每个[项目]都有一个[组]

每个[项目]都有多个[成分]

每种[成分]都有一种[类型]

我的代码失控了。我写了“edit_item_record”表单,里面填充了“name”或“id”等字段,但我有下拉列表和子项目的问题。

我不知道如何在一个页面上创建包含与[Item]相关的所有内容的表单(名称,组,成分)。提交这样的表单可能需要在许多表上进行多次插入或更新。 如何处理?

有没有人看过CodeIgniter的任何教程,它描述了如何使用1个表和2个字段来设计比博客更大的应用程序?

1 个答案:

答案 0 :(得分:1)

您不会通过教程获得此类内容,您需要在博客类型教程中学习所学内容并将其应用于您的情况。在我的应用程序中,简单地添加产品可能会影响多达7个表。

这是一个关于工作流程的问题。您需要使用笔和垫坐下来确定工作原理,表格关联方式以及添加数据的流程。在开始编码之前,您需要了解如何添加数据,哪些表需要来自其他人的信息才能插入等。例如,一个简单的产品,您在产品表中有基本数据,另一个表用于产品图像。显然,在这种情况下,您需要先插入product表,以获取要添加到images表的id。是的,你将最终得到多个插入,事实上当添加一个新成员时,由于数据的工作方式,我的例程会插入一个表两次。

慢慢把它映射出来。这是一个没有任何教程可以提供帮助的情况,它是关于你在逻辑上查看表和数据流并将它们放在一起。

将所有数据放在一个简单的部分表格上。只需使用带连接的查询来拉取控制器中的数据。这些方面的东西。

控制器:

$data['products'] = $this->product->getAllProductDetails($productId);

型号:

$this->db->where('productId',$productId);
$this->db->join('product_images','product_images.productId=products.productId');
$this->db->join('manufacturers','manufacturers.manufacturerId=products.productId');
$this->db->get('products');

以上内容会将所有产品,产品图片和制造商信息提取到变量$ products中,供您在视图中使用。然后在你的保存按钮上你将有另一个控制器功能,它将单独调用保存(插入或更新,我个人有一个保存功能,决定哪些是必需的)为每个表