【问题标题】:One view, multiple nested forms, multiple tables一个视图、多个嵌套表单、多个表格
【发布时间】:2013-01-16 14:23:18
【问题描述】:

背景

我的任务是编写一个小型企业在线数据库。该数据库将包含许多信息以及有关其董事和分支机构的信息。由于任何企业都可以拥有无​​限数量的董事和分支机构,因此我需要创建一个不仅限于一个董事和/或分支机构的数据库。

我有什么

目前我有 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 并手动编写它。

【问题讨论】:

    标签: forms cakephp-2.2


    【解决方案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;
    }
    

    类似地加载其他模型并将字段从发布的表单作为数组传递给它的保存方法。 假设 URL 格式是http://example.com/director/detail。那么你想把上面的方法(在 MVC 术语中称为动作)放在app/controllers/directors_controller.php

    通常如果 URL 格式是 http://somesite.com/abc/xyz,它会寻找 xyz 动作 app/controllers/abcs_controller.php

    您可以阅读有关蛋糕约定的更多信息here

    【讨论】:

    • 感谢您的回答。如前所述,我对 cakePHP 非常陌生。这会放在哪个文件中?
    猜你喜欢
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 2013-02-14
    相关资源
    最近更新 更多