背景
我被赋予了编写小型企业在线数据库的任务。该数据库将包含大量信息以及其董事和分支机构的信息。由于任何企业都可以拥有无限数量的董事和分支机构,因此我需要创建一个不仅限于一个董事和/或分支机构的数据库。
我有什么
目前我有3张桌子。
smmes [id, company_name, trading_name, business_address, registration_number, tax_reference, vat_number, bbbee_status, employees, awards, created, modified]
ownerships [id, smme_id, name, surname, gender, age, race, disability, qualification, created, modified]
branches [id, smme_id, location, contact_number, contact_person, created, modified]
注意:smme_id是分支机构或董事所属的smmes公司的ID。
我对SMME有一个看法。
我的问题是什么
我非常喜欢cakePHP(事实上,这是我第一个使用cakePHP创建的应用程序)。我想知道如何创建一个表单,用户可以在其中输入所有这些详细信息,然后从一个视图添加所有控制器和分支的详细信息。我希望他们没有各种观点来创建所有细节。除此之外,这一个视图应该使用正确的smme_id将所有数据保存到正确的表中。
这是可能的还是我应该留下cakePHP并手动编写。
答案 0 :(得分:1)
您可以在控制器中按需加载模型,然后将模型特定数据(从已发布表单接收)传递到加载模型的保存方法。
public function detail(){
if($this->request->is('post')): // update only when form is posted
$this->loadModel('ownerships');
$owner_name= $this->request->data['Ownername'];
$ownerships_data = array('Ownership' = > array(
'name' = > $owner_name
//add other keys from posted form
)
);
$this->Ownership->saveAll($ownerships_data);
// load other models for saving posted data in related tables
endif;
}
同样加载其他模型并将已发布表单中的字段作为数组传递给它的save方法。
假设网址格式为http://example.com/director/detail
。因此,您希望在app/controllers/directors_controller.php
通常,如果网址格式为http://somesite.com/abc/xyz
,则会在其中查找xyz
操作
app/controllers/abcs_controller.php
您可以阅读有关蛋糕约定的更多信息here