我已经开始了我在CI的第一个项目,并再次陷入困境!
我为“公司”
创建了模型,控制器,视图和数据库表公司包括以下内容:
Company ID
Company Name
Company Registration Number
Credit Limit
Website
Address
Postcode
Country
我的控制器允许您查看公司列表,编辑公司或创建新公司。
现在我希望每家公司都有一个“联系人”列表。每家公司会有一个或多个联系人。我的联系人表格是这样的:
Contact ID
Company ID (this is the foreign key)
First Name
Last Name
Position
Email Address
Telephone
Mobile
这是我困惑的地方,有很多问题如下:
1)我是否应该为“联系人”提供完全独立的模型,控制器和视图?我不清楚他们是否应该分开,或者他们是否应该成为“公司”控制器和模型的一部分,因为它们是相关的。
2)我倾向于联系人应该是一个单独的模型。如果是这种情况,当您删除公司时,您还希望删除该公司的所有相关联系人。您应该在以下方面处理整个删除过程:
$this->company_model->delete_company($company_id) /* Delete from both company & contacts */
或者你应该这样打两个模型:
$this->company_model->delete_company($company_id);
$this->contacts_model->delete_contacts_list($company_id);
3)我的路由会是什么/应该是什么样的。查看,添加和删除联系人只能通过公司视图进行。因此,如果我们像这样查看ID为123的公司:
/company/view/123
我们如何查看123公司的相关联系人?像这样:
/company/view/123/contacts
或者像这样:
/contacts/123
我希望这些问题足够明确,并且感谢您的回顾。
答案 0 :(得分:0)
您只需调用您刚刚编写的控制器功能名称yourcontrollermethodname/123
然后在控制器中调用你的两个模型
yourcontrollermethodname( $company_id = NULL ) {
$this->company_model->delete_company($company_id);
$this->company_model->delete_contacts_list($company_id);
}
并在模型中创建2个方法delete_company和delete_contacts_list,然后只传递id并删除它们,如果你想调用视图,那么在控制器中
yourcontrollermethodcallscompanylist ()
{
// make model
$data['company_list'] = $this->company_model->company_list();
$this->load->view('abc',$data);
}