문제

Background

I was given the task of writing a Small Business online database. This database is to include a lot of info as well as info on their directors and branches. Since any business can have an unlimited amount of directors and branches, I need to create a database that is not limited to just one director and/or branch.

What do I have

Currently I have 3 tables.

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]

Note: smme_id is the id of the company in smmes that the branch or director belongs to.

And I have a view for the SMME's.

What is my question

I'm VERY new to cakePHP (in fact, this is my first app I'm creating with cakePHP). I want to know how I can make one form where a user can enter all this detail and then add the details for all directors and branches from one view. I would prefer that they do not have various views to go through to create all the details. Add to that, this one view should then save all the data to the correct tables with the correct smme_id.

Is this possible or should I rather leave cakePHP and write it manually.

도움이 되었습니까?

해결책

You can load model on demand in your controller and then pass model specific data(received from posted form) to loaded model's save method.

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;
}

Similarly load other models and pass fields from posted form as array to it's save method. Suppose URL format is http://example.com/director/detail.So you would like to put above method(termed as action in MVC terminology) in app/controllers/directors_controller.php

Generally if URL format is http://somesite.com/abc/xyz it will look for xyz action in app/controllers/abcs_controller.php

You can read more about cake conventions here

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top